v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
template-utils.h File Reference
#include <stddef.h>
#include <array>
#include <functional>
#include <iosfwd>
#include <tuple>
#include <type_traits>
#include <utility>
Include dependency graph for template-utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::base::overloaded< Ts >
 
struct  v8::base::pass_value_or_ref< T, remove_array_extend >
 
struct  v8::base::detail::nth_type< 0, T, Ts... >
 
struct  v8::base::detail::nth_type< N, T, Ts... >
 
struct  v8::base::index_of_type< SearchT >
 
struct  v8::base::index_of_type< SearchT, SearchT, Ts... >
 
struct  v8::base::index_of_type< SearchT, T, Ts... >
 

Namespaces

namespace  v8
 
namespace  v8::base
 
namespace  v8::base::detail
 

Concepts

concept  v8::base::has_output_operator
 

Typedefs

template<class Tuple , class T >
using v8::base::append_tuple_type
 
template<class T , class Tuple >
using v8::base::prepend_tuple_type
 
template<size_t N, typename... T>
using v8::base::nth_type_t = typename detail::nth_type<N, T...>::type
 

Functions

template<typename Function , std::size_t... Indexes>
constexpr auto v8::base::detail::make_array_helper (Function f, std::index_sequence< Indexes... >) -> std::array< decltype(f(0)), sizeof...(Indexes)>
 
template<std::size_t Size, class Function >
constexpr auto v8::base::make_array (Function f)
 
template<class... Ts>
 v8::base::overloaded (Ts...) -> overloaded< Ts... >
 
template<size_t N, typename T , size_t... Ints>
constexpr auto v8::base::detail::tuple_slice_impl (const T &tpl, std::index_sequence< Ints... >)
 
template<typename Tuple , typename Function , size_t... Index>
constexpr auto v8::base::detail::tuple_for_each_impl (const Tuple &tpl, Function &&function, std::index_sequence< Index... >)
 
template<typename Tuple , typename Function , size_t... Index>
constexpr auto v8::base::detail::tuple_for_each_with_index_impl (const Tuple &tpl, Function &&function, std::index_sequence< Index... >)
 
template<typename Tuple , typename Function , size_t... Index>
constexpr auto v8::base::detail::tuple_map_impl (Tuple &&tpl, const Function &function, std::index_sequence< Index... >)
 
template<typename TupleV , typename TupleU , typename Function , size_t... Index>
constexpr auto v8::base::detail::tuple_map2_impl (TupleV &&tplv, TupleU &&tplu, const Function &function, std::index_sequence< Index... >)
 
template<size_t I, typename T , typename Tuple , typename Function >
constexpr auto v8::base::detail::tuple_fold_impl (T &&initial, Tuple &&tpl, Function &&function)
 
template<size_t N, typename Tuple >
constexpr auto v8::base::tuple_head (Tuple &&tpl)
 
template<size_t N, typename Tuple >
requires (detail::NIsNotGreaterThanTupleSize<N, Tuple>)
constexpr auto v8::base::tuple_drop (Tuple &&tpl)
 
template<typename Tuple , typename Function >
constexpr void v8::base::tuple_for_each (Tuple &&tpl, Function &&function)
 
template<typename Tuple , typename Function >
constexpr void v8::base::tuple_for_each_with_index (Tuple &&tpl, Function &&function)
 
template<typename Tuple , typename Function >
constexpr auto v8::base::tuple_map (Tuple &&tpl, Function &&function)
 
template<typename TupleV , typename TupleU , typename Function >
constexpr auto v8::base::tuple_map2 (TupleV &&tplv, TupleU &&tplu, Function &&function)
 
template<typename T , typename Tuple , typename Function >
constexpr auto v8::base::tuple_fold (T &&initial, Tuple &&tpl, Function &&function)
 

Variables

template<size_t N, typename Tuple >
constexpr bool v8::base::detail::NIsNotGreaterThanTupleSize
 
template<typename SearchT , typename... Ts>
constexpr size_t v8::base::index_of_type_v = index_of_type<SearchT, Ts...>::value
 
template<typename SearchT , typename... Ts>
constexpr bool v8::base::has_type_v