|
| struct | AllHelper |
| | All base case: return true. More...
|
| |
| struct | AllHelper< TTypePred, T, Ts... > |
| | All recursive case: test multiple types. More...
|
| |
| struct | BoundAll |
| | Bind All's predicate to TMF. More...
|
| |
| struct | ConcatHelper |
| | Concat base case: empty lists. More...
|
| |
| struct | ConcatHelper< TypeList< Ts... > > |
| | Concat base case: single non-empty list. More...
|
| |
| struct | ConcatHelper< TypeList< Ts0... >, TypeList< Ts1... >, TRest... > |
| | Concat recursive case: multiple lists. More...
|
| |
| struct | ContainsAllHelper |
| |
| struct | ContainsAllHelper< TypeList< T, TRest... >, TTypeList > |
| |
| struct | ContainsAllHelper< TypeList<>, TTypeList > |
| |
| struct | CountHelper |
| | Count base case: 0. More...
|
| |
| struct | CountHelper< T, TypeList< T0, Ts... > > |
| | Count recursive case. More...
|
| |
| struct | ExpandT |
| |
| struct | FilterHelper |
| | Filter base case: empty list. More...
|
| |
| struct | FilterHelper< TTypePred, TypeList< T, Ts... > > |
| | Filter recursive case: concat matching types. More...
|
| |
| struct | IndexOfHelper |
| |
| struct | IndexOfHelper< T, TypeList< T, Ts... > > |
| | IndexOf base case: found the type we're looking for. More...
|
| |
| struct | IndexOfHelper< T, TypeList< TOther, Ts... > > |
| | IndexOf recursive case: 1 + IndexOf the rest of the types. More...
|
| |
| struct | MapHelper |
| | Map base case: empty list. More...
|
| |
| struct | MapHelper< TTypeFn, TypeList< T, Ts... > > |
| | Map recursive case: non-empty list. More...
|
| |
| struct | RenameHelper |
| |
| struct | RenameHelper< TNewName, TOldName< Ts... > > |
| | "Renames" TOldName<Ts...> to TNewName<Ts...>. More...
|
| |
| struct | RepeatHelper |
| | Repeat recursive case: TTimes repetitions left. More...
|
| |
| struct | RepeatHelper< 0, T > |
| | Repeat base case: 0 repetitions left. More...
|
| |
| struct | Type |
| | Simple wrapper for types that can be instantiated. More...
|
| |
| struct | TypeList |
| | Compile-time list of types. More...
|
| |
| struct | UniqueHelper |
| |
| struct | UniqueHelper< TypeList< T, Ts... > > |
| |
|
| template<typename... TTypeLists> |
| using | Concat = typename ConcatHelper< TTypeLists... >::type |
| | Interface type alias.
|
| |
| template<template< typename > class TTypePred, typename TTypeList > |
| using | Filter = typename FilterHelper< TTypePred, TTypeList >::type |
| | Interface type alias.
|
| |
| template<template< typename > class TTypeFn, typename TTypeList > |
| using | Map = typename MapHelper< TTypeFn, TTypeList >::type |
| | Interface type alias.
|
| |
| template<template< typename... > class TNewName, typename T > |
| using | Rename = typename RenameHelper< TNewName, T >::type |
| |
| template<std::size_t TTimes, typename T > |
| using | Repeat = typename RepeatHelper< TTimes, T >::type |
| | Interface type alias.
|
| |
| template<typename TTypeList > |
| using | Tuple = Rename< std::tuple, TTypeList > |
| | Type list as a tuple.
|
| |
| template<typename TTypeList > |
| using | TypeTuple = Tuple< Map< Type, TTypeList > > |
| | Type list as a tuple of Type<T>.
|
| |
| template<std::size_t TIndex, typename TTypeList > |
| using | Nth = std::tuple_element_t< TIndex, Tuple< TTypeList > > |
| | "Nth" element of a type list.
|
| |
| template<typename T , typename TTypeList > |
| using | PushBack = Concat< TTypeList, TypeList< T > > |
| | Adds a type to the back of a type list.
|
| |
| template<typename T , typename TTypeList > |
| using | PushFront = Concat< TypeList< T >, TTypeList > |
| | Adds a type to the front of a type list.
|
| |
| template<typename TTypeList > |
| using | Head = Nth< 0, TTypeList > |
| | First type of a type list.
|
| |
| template<typename TTypeList > |
| using | Tail = Nth< size< TTypeList >() - 1, TTypeList > |
| | Last type of a type list.
|
| |
|
| template<typename TFunction , typename TTuple , std::size_t... TIndices> |
| constexpr decltype(auto) | tupleApplyImpl (TFunction &&function, TTuple &&tuple, std::index_sequence< TIndices... >) |
| |
| template<typename TFunction , typename TTuple > |
| constexpr decltype(auto) | tupleApply (TFunction &&function, TTuple &&tuple) |
| |
| template<typename TFunction , typename... Ts> |
| constexpr decltype(auto) | forArgs (TFunction &&function, Ts &&... args) |
| |
| template<typename TFunction , typename TTuple > |
| constexpr decltype(auto) | forTuple (TFunction &&function, TTuple &&tuple) |
| |
| template<typename TTypeList > |
| constexpr auto | size () noexcept |
| | Size of a type list.
|
| |
| template<typename TTypeList , typename TFunction > |
| constexpr void | forTypes (TFunction &&mFunction) noexcept |
| | Execute a function for every type in a type list, wrapped in a Type<T>.
|
| |
|
| template<template< typename > class TTypePred, typename... Ts> |
| constexpr bool | All = AllHelper<TTypePred, Ts...>::value |
| |
| template<template< typename > class TMF, typename TL > |
| constexpr bool | AllTypes = Rename<BoundAll<TMF>::template type, TL>::value |
| | Unpack a type list into All.
|
| |
| template<typename TCheckTypeList , typename TTypeList > |
| constexpr bool | ContainsAll = ContainsAllHelper<TCheckTypeList, TTypeList>::value |
| |
| template<typename T , typename TTypeList > |
| constexpr size_t | Count = CountHelper<T, TTypeList>::value |
| | Interface type alias.
|
| |
| template<typename T , typename TTypeList > |
| constexpr bool | Contains = Count<T, TTypeList> > 0 |
| | Alias for Count > 0.
|
| |
| template<typename T , typename TTypeList > |
| constexpr size_t | IndexOf = IndexOfHelper<T, TTypeList>::value |
| | Interface alias.
|
| |
| template<typename... Ts> |
| constexpr bool | Unique = UniqueHelper<TypeList<Ts...>>::value |
| |