|
struct | is_terminal |
|
struct | is_input_terminal |
|
struct | is_output_terminal |
|
struct | is_output_terminal_tuple |
|
struct | is_output_terminal_tuple< std::tuple< Ts... > > |
|
struct | decays_to_output_terminal_tuple |
|
struct | is_nonconst_lvalue_reference_to_output_terminal_tuple |
|
struct | has_member_function_hash |
|
struct | has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> > |
|
struct | has_ttg_hash_specialization |
|
struct | has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> > |
|
struct | is_generic_callable |
|
struct | is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > > |
|
struct | candidate_argument_bindings |
|
struct | candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > > |
|
struct | candidate_argument_bindings< void, void > |
|
struct | candidate_argument_bindings< const void, void > |
|
struct | nonref_tuple |
|
struct | nonref_tuple< std::tuple< Ts... > > |
|
struct | tuple_concat |
|
struct | tuple_concat< std::tuple< Ts... > > |
|
struct | tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... > |
|
struct | filtered_tuple |
|
struct | filtered_tuple< std::tuple< Es... >, Pred > |
|
struct | probe_last |
|
struct | probe_last< Predicate, Default > |
|
struct | probe_last< Predicate, Default, T > |
|
struct | probe_last< Predicate, Default, T1, Ts... > |
|
struct | probe_last< Predicate, Default, std::tuple< Ts... > > |
|
struct | probe_last< Predicate, Default, ttg::typelist< Ts... > > |
|
struct | probe_first |
|
struct | probe_first< Predicate, Default > |
|
struct | probe_first< Predicate, Default, T1, Ts... > |
|
struct | probe_first< Predicate, Default, std::tuple< Ts... > > |
|
struct | probe_first< Predicate, Default, ttg::typelist< Ts... > > |
|
struct | probe_any |
|
struct | probe_any< Predicate, std::tuple< Ts... > > |
|
struct | probe_any< Predicate, ttg::typelist< Ts... > > |
|
struct | probe_all |
|
struct | probe_all< Predicate, std::tuple< Ts... > > |
|
struct | probe_all< Predicate, ttg::typelist< Ts... > > |
|
struct | is_void |
|
struct | is_nonvoid |
|
struct | is_last_void |
|
struct | void_to_Void |
|
struct | void_to_Void< void > |
|
struct | is_const_lvalue_reference |
|
struct | is_nonconst_lvalue_reference |
|
struct | is_ptr |
|
struct | is_ptr< ttg::Ptr< T > > |
|
struct | is_buffer |
|
struct | is_buffer< ttg::Buffer< T, A > > |
|
struct | is_buffer< const ttg::Buffer< T, A > > |
|
struct | is_devicescratch |
|
struct | is_devicescratch< ttg::devicescratch< T > > |
|
struct | is_devicescratch< const ttg::devicescratch< T > > |
|
struct | drop_first_n |
| drops N elements from the front More...
|
|
struct | drop_first_n< std::tuple< Ts... >, std::size_t(0)> |
|
struct | drop_first_n< typelist< Ts... >, std::size_t(0)> |
|
struct | drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > > |
|
struct | drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > > |
|
struct | take_first_n |
| take first N elements of a type list More...
|
|
struct | take_first_n_helper |
|
struct | take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)> |
|
struct | take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)> |
|
struct | take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > > |
|
struct | take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > > |
|
struct | take_first_n< std::tuple< Ts... >, N > |
|
struct | take_first_n< typelist< Ts... >, N > |
|
struct | drop_last_n |
| drops N trailing elements from a typelist More...
|
|
struct | type_identity |
|
struct | typelist |
| A container for types. More...
|
|
struct | is_typelist |
|
struct | is_typelist< typelist< Ts... > > |
|
struct | typelist_to_tuple |
|
struct | typelist_to_tuple< typelist< T... > > |
|
struct | typelist_size |
|
struct | typelist_size< typelist< Ts... > > |
|
struct | typelist_is_empty |
|
struct | typelist_is_not_empty |
|
|
template<std::size_t N> |
constexpr auto | ordinal2index (std::size_t ordinal, std::array< std::size_t, N > extents) |
|
template<std::size_t Ordinal, typename Func , typename... Typelists, std::size_t... ArgIdx> |
auto | compute_arg_binding_types_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={}) |
|
template<std::size_t Ordinal, typename ReturnType , typename Func , typename... Typelists, std::size_t... ArgIdx> |
auto | compute_arg_binding_types_r_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={}) |
|
template<typename Func , typename... Typelists> |
auto | compute_arg_binding_types (Func &func, typelist< Typelists... > argument_type_lists) |
|
template<typename ReturnType , typename Func , typename... Typelists> |
auto | compute_arg_binding_types_r (Func &func, typelist< Typelists... > argument_type_lists) |
|
template<std::size_t I, typename T , typename... RestOfTs> |
constexpr auto | get (typelist< T, RestOfTs... >) |
|
|
template<typename T , typename = void> |
constexpr bool | is_terminal_v = false |
|
template<typename T > |
constexpr bool | is_input_terminal_v = false |
| detects whether a given type is an input terminal type More...
|
|
template<typename keyT > |
constexpr bool | is_input_terminal_v< InTerminalBase< keyT > > = true |
|
template<typename keyT , typename valueT > |
constexpr bool | is_input_terminal_v< In< keyT, valueT > > = true |
|
template<typename T > |
constexpr bool | is_output_terminal_v = false |
| detects whether a given type is an output terminal type More...
|
|
template<typename keyT > |
constexpr bool | is_output_terminal_v< OutTerminalBase< keyT > > = true |
|
template<typename keyT , typename valueT > |
constexpr bool | is_output_terminal_v< Out< keyT, valueT > > = true |
|
template<typename... Ts> |
constexpr bool | is_output_terminal_tuple_v = is_output_terminal_tuple<Ts...>::value |
|
template<typename T > |
constexpr bool | decays_to_output_terminal_tuple_v = is_output_terminal_tuple_v<std::decay_t<T>> |
|
template<typename T > |
constexpr bool | is_nonconst_lvalue_reference_to_output_terminal_tuple_v |
|
template<typename T > |
constexpr bool | has_member_function_hash_v = has_member_function_hash<T>::value |
|
template<typename T > |
constexpr bool | has_ttg_hash_specialization_v = has_ttg_hash_specialization<T>::value |
|
template<typename Callable > |
constexpr bool | is_generic_callable_v = is_generic_callable<Callable>::value |
|
template<typename Callable , typename Enabler = void> |
constexpr std::pair< bool, std::pair< ttg::typelist<>, ttg::typelist<> > > | callable_args = {true, {}} |
|
template<template< typename > typename Predicate, bool Default, typename... Ts> |
constexpr bool | probe_last_v = probe_last<Predicate, Default, Ts...>::value |
|
template<template< typename > typename Predicate, bool Default, typename... Ts> |
constexpr bool | probe_first_v = probe_first<Predicate, Default, Ts...>::value |
|
template<template< typename > typename Predicate, typename... Ts> |
constexpr bool | probe_any_v = probe_any<Predicate, Ts...>::value |
|
template<template< typename > typename Predicate, typename... Ts> |
constexpr bool | probe_all_v = probe_all<Predicate, Ts...>::value |
|
template<typename T > |
constexpr bool | is_Void_v = std::is_same_v<std::decay_t<T>, Void> |
|
template<typename T > |
constexpr bool | is_void_v = is_Void_v<T> || std::is_void_v<T> |
|
template<typename T > |
constexpr bool | is_nonvoid_v = !is_void_v<T> |
|
template<typename... Ts> |
constexpr bool | is_all_void_v = (is_void_v<Ts> && ...) |
|
template<typename... Ts> |
constexpr bool | is_all_Void_v = (is_Void_v<Ts> && ...) |
|
template<typename... Ts> |
constexpr bool | is_any_void_v = (is_void_v<Ts> || ...) |
|
template<typename... Ts> |
constexpr bool | is_any_Void_v = (is_Void_v<Ts> || ...) |
|
template<typename... Ts> |
constexpr bool | is_none_void_v = !is_any_void_v<Ts...> |
|
template<typename... Ts> |
constexpr bool | is_none_Void_v = !is_any_Void_v<Ts...> |
|
template<typename... Ts> |
constexpr bool | is_last_void_v = is_last_void<Ts...>::value |
|
template<typename T > |
constexpr bool | is_const_lvalue_reference_v |
|
template<typename T > |
constexpr bool | is_nonconst_lvalue_reference_v |
|
template<typename... Ts> |
constexpr bool | is_any_nonconst_lvalue_reference_v = (is_nonconst_lvalue_reference_v<Ts> || ...) |
|
template<typename T > |
constexpr bool | is_ptr_v = is_ptr<T>::value |
|
template<typename T > |
constexpr bool | is_buffer_v = is_buffer<T>::value |
|
template<typename T > |
constexpr bool | is_devicescratch_v = is_devicescratch<T>::value |
|
template<typename T > |
constexpr bool | is_typelist_v = is_typelist<T>::value |
|
template<typename T > |
constexpr std::size_t | typelist_size_v = typelist_size<T>::value |
|
template<typename T > |
constexpr bool | typelist_is_empty_v = (typelist_size_v<T> == 0) |
|
template<typename T > |
constexpr bool | typelist_is_not_empty_v = (typelist_size_v<T> != 0) |
|
template<std::size_t Ordinal, typename Func , typename... Typelists, std::size_t... ArgIdx>
auto ttg::meta::compute_arg_binding_types_impl |
( |
Func & |
func, |
|
|
typelist< Typelists... > |
argument_type_lists, |
|
|
std::index_sequence< ArgIdx... > |
arg_idx = {} |
|
) |
| |
detects argument and return types of a generic callable (func
) by trying each combination of types (argument_type_lists
) for the respective arguments starting with the combination corresponding to the given Ordinal
- Template Parameters
-
Ordinal | a nonnegative integer specifying the ordinal of the type combination from Typelists to try; maximum value is (std::tuple_size_v<Typelists> * ...) |
Func | a generic callable type |
Typelists | a pack of ttg::typelist's each of which specifies candidate types for the respective argument of Func |
- Parameters
-
- Note
- iterates over
argument_type_lists
in "row-major" order (i.e. last list in argument_type_lists
is iterated first, etc.; the maxim
- Returns
- an object of type
ttg::typelist<ttg::typelist<ReturnType>,ttg::typelist<ArgTypes>>
Definition at line 84 of file callable.h.
template<std::size_t Ordinal, typename ReturnType , typename Func , typename... Typelists, std::size_t... ArgIdx>
auto ttg::meta::compute_arg_binding_types_r_impl |
( |
Func & |
func, |
|
|
typelist< Typelists... > |
argument_type_lists, |
|
|
std::index_sequence< ArgIdx... > |
arg_idx = {} |
|
) |
| |
detects argument types of a generic callable (func
) by trying each combination of types (argument_type_lists
) for the respective arguments starting with the combination corresponding to the given Ordinal
. The callable is expected to return ReturnType
- Template Parameters
-
Ordinal | a nonnegative integer specifying the ordinal of the type combination from Typelists to try; maximum value is (std::tuple_size_v<Typelists> * ...) |
ReturnType | the expected return type of Func |
Func | a generic callable type |
Typelists | a pack of ttg::typelist's each of which specifies candidate types for the respective argument of Func |
- Parameters
-
- Note
- iterates over
argument_type_lists
in "row-major" order (i.e. last list in argument_type_lists
is iterated first, etc.; the maxim
- Returns
- an object of type
ttg::typelist<ArgTypes>
Definition at line 122 of file callable.h.
template<typename Callable , typename Enabler = void>
callable_args<Callable> detects whether Callable
is generic or not, and in the latter case detects (using Boost.CallableTraits) its return and argument types. callable_args<Callable> is a constexpr value of type std::pair<bool,ttg::typelist<ttg::typelist<ReturnType>,ttg::typelist<ArgTypes>>>
where:
- the boolean indicates whether
Callable
is generic (true) or not (false),
ReturnType
is the return type of the Callable
if it's generic, empty otherwise
ArgTypes
is the argument types of the Callable
if it's generic, empty otherwise - Template Parameters
-
Definition at line 44 of file callable.h.
template<template< typename > typename Predicate, bool Default, typename... Ts>
constexpr bool ttg::meta::probe_first_v = probe_first<Predicate, Default, Ts...>::value |
|
constexpr |
This constexpr function checks if Predicate
is true when applied to the first element of Ts...
, if not empty, else evaluates to Default
- Template Parameters
-
Predicate | boolean metafunction, i.e. Predicate<T>::value is a compile-time boolean |
Default | the metafunction result for the case of empty Ts... |
Ts | a type pack |
Definition at line 150 of file meta.h.
template<template< typename > typename Predicate, bool Default, typename... Ts>
constexpr bool ttg::meta::probe_last_v = probe_last<Predicate, Default, Ts...>::value |
|
constexpr |
This constexpr function applies Predicate
is true when applied to the last element of Ts...
, if not empty, else evaluates to Default
- Template Parameters
-
Predicate | boolean metafunction, i.e. Predicate<T>::value is a compile-time boolean |
Default | the metafunction result for the case of empty Ts... |
Ts | a type pack |
Definition at line 120 of file meta.h.