![]() |
Audacity 3.2.0
|
Utilities for compile-time type manipulation. Some terminology as in Lisp. More...
Classes | |
| struct | And |
| struct | And< Predicate, Predicates... > |
| struct | And<> |
| struct | Append |
| struct | Append< TypeList, TypeLists... > |
| struct | Append<> |
| struct | Apply |
| Bind the types in TypeList to the parameters of a variadic Template. More... | |
| struct | Apply< Template, List< Types... > > |
| struct | Bind |
| Destructure any tuple-like type into a TypeList. More... | |
| struct | Bind1st |
| Given a binary template and a fixed argument, make a metafunction. More... | |
| struct | Bind2nd |
| Given a binary template and a fixed argument, make a metafunction. More... | |
| struct | ButLast |
| struct | ButLast< List< Type > > |
| struct | ButLast< List< Type, Types... > > |
| struct | Call |
| Apply a metafunction to a type. More... | |
| struct | Compose |
| struct | Compose< Metafunction, Metafunctions... > |
| struct | Compose<> |
| struct | Cons |
| Build a type list from a type and another type list. More... | |
| struct | Cons< Type, List< Types... > > |
| struct | Every |
| struct | Filter |
| Select only the subsequence of the type list satisfying the predicate. More... | |
| struct | Fn |
| struct | Fn< Template, Templates... > |
| struct | Fn<> |
| struct | HasBaseIn |
| Whether the given type is derived from any member of the list. More... | |
| struct | Head |
Delays expansion of nested alias head; so Head<Nil> is legal. More... | |
| struct | Head< List< Types... > > |
| struct | In |
| struct | Last |
| struct | Last< List< Type > > |
| struct | Last< List< Type, Types... > > |
| struct | LeftFold |
| Left fold reduction of a list of types by a binary template. More... | |
| struct | LeftFoldList |
| Like LeftFold, but passing nonempty prefixes, not elements, to Op. More... | |
| struct | Length |
| struct | Length< List< Types... > > |
| struct | List |
| Primary template for a list of arbitrary types. More... | |
| struct | List< Type, Types... > |
| Non-empty specialization also defines first and rest. More... | |
| struct | List<> |
| Empty specialization. More... | |
| struct | Map |
| Transform a list of types by the given metafunction. More... | |
| struct | MapList |
| struct | NonEmptyTails |
| struct | NotAny |
| struct | NotEvery |
| struct | Nth |
| struct | Null |
| struct | Null< List< Types... > > |
| struct | Or |
| struct | Or< Predicate, Predicates... > |
| struct | Or<> |
| struct | PushBack |
| PushBack – no Common Lisp equivalent name. More... | |
| struct | PushBack< List< Types... >, Type > |
| struct | PushFront |
| An alternative more suggestive of C++ than Lisp conventions. More... | |
| struct | Reverse |
| struct | RightFold |
| Right fold reduction of a list of types by a binary template. More... | |
| struct | RightFoldList |
| Like RightFold, but passing nonempty tails, not elements, to Op. More... | |
| struct | Some |
| struct | StablePartition |
| struct | Tail |
| Delays expansion of nested alias rest; so Tail<Nil> is legal. More... | |
| struct | Tail< List< Types... > > |
| struct | Tails |
| struct | type_identity |
| standard in C++20; add a level of indirection to a type More... | |
Typedefs | |
| using | Nil = List<> |
| template<typename TypeList > | |
| using | Length_t = typename Length< TypeList >::type |
| template<typename TypeList > | |
| using | Head_t = typename Head< TypeList >::type |
| template<typename TypeList > | |
| using | Tail_t = typename Tail< TypeList >::type |
| template<typename TypeList > | |
| using | Rest = Tail< TypeList > |
| Synonym for Tail. More... | |
| template<typename TypeList > | |
| using | Rest_t = Tail_t< TypeList > |
| template<size_t N, typename TypeList > | |
| using | Nth_t = typename Nth< N, TypeList >::type |
| template<typename TypeList > | |
| using | First = Nth< 0, TypeList > |
| template<typename TypeList > | |
| using | First_t = typename First< TypeList >::type |
| template<typename TypeList > | |
| using | Second = Nth< 1, TypeList > |
| template<typename TypeList > | |
| using | Second_t = typename Second< TypeList >::type |
| template<typename Type , typename TypeList > | |
| using | Cons_t = typename Cons< Type, TypeList >::type |
| template<typename TypeList , typename Type > | |
| using | PushFront_t = typename PushFront< TypeList, Type >::type |
| template<typename TypeList , typename Type > | |
| using | PushBack_t = typename PushBack< TypeList, Type >::type |
| template<typename TypeList > | |
| using | NonEmptyTails_t = typename NonEmptyTails< TypeList >::type |
| template<typename TypeList > | |
| using | Tails_t = typename Tails< TypeList >::type |
| template<typename TypeList > | |
| using | Last_t = typename Last< TypeList >::type |
| template<typename TypeList > | |
| using | ButLast_t = typename ButLast< TypeList >::type |
| using | Identity = Compose<> |
| template<template< typename... > class Template, typename TypeList > | |
| using | Apply_t = typename Apply< Template, TypeList >::type |
| template<typename TupleLike > | |
| using | Bind_t = typename Bind< TupleLike >::type |
| template<typename Metafunction , typename TypeList > | |
| using | Map_t = typename Map< Metafunction, TypeList >::type |
| template<typename Metafunction , typename TypeList > | |
| using | MapList_t = typename MapList< Metafunction, TypeList >::type |
| template<typename... Lists> | |
| using | Append_t = typename Append< Lists... >::type |
| template<template< typename Type, typename Accumulator > class Op, typename TypeList , typename Initial > | |
| using | LeftFold_t = typename LeftFold< Op, TypeList, Initial >::type |
| template<template< typename Prefix, typename Accumulator > class Op, typename TypeList , typename Initial > | |
| using | LeftFoldList_t = typename LeftFoldList< Op, TypeList, Initial >::type |
| template<template< typename Type, typename Accumulator > class Op, typename TypeList , typename Initial > | |
| using | RightFold_t = typename RightFold< Op, TypeList, Initial >::type |
| template<template< typename Tail, typename Accumulator > class Op, typename TypeList , typename Initial > | |
| using | RightFoldList_t = typename RightFoldList< Op, TypeList, Initial >::type |
| template<typename TypeList > | |
| using | Reverse_t = typename Reverse< TypeList >::type |
| template<typename Predicate , typename T > | |
| using | Call_t = typename Call< Predicate, T >::type |
| template<bool Const> | |
| using | MaybeConst = std::conditional_t< Const, Fn< std::add_const_t >, Identity > |
| Conditionally add const to a type. More... | |
| template<bool Const, typename TypeList > | |
| using | MapConst = std::conditional_t< Const, Map< Fn< std::add_const_t >, TypeList >, type_identity< TypeList > > |
| Conditionally map const over a type list. More... | |
| template<bool Const, typename TypeList > | |
| using | MapConst_t = typename MapConst< Const, TypeList >::type |
| template<typename Predicate , typename T > | |
| using | Is = Call< Predicate, T > |
| Apply a metapredicate to a type. More... | |
| template<typename Predicate , typename T > | |
| using | Is_t = typename Is< Predicate, T >::type |
| template<typename Predicate > | |
| using | Not = Compose< Fn< std::negation >, Predicate > |
| template<typename Predicate , typename TypeList > | |
| using | StablePartition_t = typename StablePartition< Predicate, TypeList >::type |
| template<typename Predicate , typename TypeList > | |
| using | Filter_t = typename Filter< Predicate, TypeList >::type |
Variables | |
| template<typename TypeList > | |
| constexpr auto | Null_v = Null<TypeList>::value |
| template<typename TypeList > | |
| constexpr auto | Length_v = Length_t<TypeList>::value |
| template<typename Predicate , typename T > | |
| static constexpr bool | Is_v |
| template<typename Predicate , typename TypeList > | |
| constexpr auto | Every_v |
| The constant value in the corresponding type. More... | |
| template<typename Predicate , typename TypeList > | |
| constexpr auto | Some_v |
| The constant value in the corresponding type. More... | |
| template<typename Predicate , typename TypeList > | |
| constexpr auto | NotEvery_v |
| The constant value in the corresponding type. More... | |
| template<typename Predicate , typename TypeList > | |
| constexpr auto | NotAny_v |
| The constant value in the corresponding type. More... | |
| template<typename Item , typename TypeList > | |
| constexpr auto | In_v |
| template<typename Item , typename TypeList > | |
| constexpr auto | HasBaseIn_v |
Utilities for compile-time type manipulation. Some terminology as in Lisp.
| using TypeList::Append_t = typedef typename Append<Lists...>::type |
Definition at line 273 of file TypeList.h.
| using TypeList::Apply_t = typedef typename Apply<Template, TypeList>::type |
Definition at line 235 of file TypeList.h.
| using TypeList::Bind_t = typedef typename Bind<TupleLike>::type |
Definition at line 250 of file TypeList.h.
| using TypeList::ButLast_t = typedef typename ButLast<TypeList>::type |
Definition at line 190 of file TypeList.h.
| using TypeList::Call_t = typedef typename Call<Predicate, T>::type |
Definition at line 374 of file TypeList.h.
| using TypeList::Cons_t = typedef typename Cons<Type, TypeList>::type |
Definition at line 141 of file TypeList.h.
| using TypeList::Filter_t = typedef typename Filter<Predicate, TypeList>::type |
Definition at line 503 of file TypeList.h.
| using TypeList::First = typedef Nth<0, TypeList> |
Nth is zero-based but "First, Second," etc. are not. Sorry, but that's Lisp convention. (And C++ too: get as applied to pairs, but "first", "second")
Definition at line 133 of file TypeList.h.
| using TypeList::First_t = typedef typename First<TypeList>::type |
Definition at line 134 of file TypeList.h.
| using TypeList::Head_t = typedef typename Head<TypeList>::type |
Could simply define template<typename TypeList> using Head_t = typename TypeList::head; But instead it is defined in terms of Head
Definition at line 95 of file TypeList.h.
| using TypeList::Identity = typedef Compose<> |
Definition at line 218 of file TypeList.h.
| using TypeList::Is = typedef Call<Predicate, T> |
Apply a metapredicate to a type.
Definition at line 391 of file TypeList.h.
| using TypeList::Is_t = typedef typename Is<Predicate, T>::type |
Definition at line 392 of file TypeList.h.
| using TypeList::Last_t = typedef typename Last<TypeList>::type |
Definition at line 183 of file TypeList.h.
| using TypeList::LeftFold_t = typedef typename LeftFold<Op, TypeList, Initial>::type |
Definition at line 309 of file TypeList.h.
| using TypeList::LeftFoldList_t = typedef typename LeftFoldList<Op, TypeList, Initial>::type |
Definition at line 329 of file TypeList.h.
| using TypeList::Length_t = typedef typename Length<TypeList>::type |
Definition at line 83 of file TypeList.h.
| using TypeList::Map_t = typedef typename Map<Metafunction, TypeList>::type |
Definition at line 261 of file TypeList.h.
| using TypeList::MapConst = typedef std::conditional_t<Const, Map<Fn<std::add_const_t>, TypeList>, type_identity<TypeList> > |
Conditionally map const over a type list.
Definition at line 382 of file TypeList.h.
| using TypeList::MapConst_t = typedef typename MapConst<Const, TypeList>::type |
Definition at line 387 of file TypeList.h.
| using TypeList::MapList_t = typedef typename MapList<Metafunction, TypeList>::type |
Definition at line 269 of file TypeList.h.
| using TypeList::MaybeConst = typedef std::conditional_t<Const, Fn<std::add_const_t>, Identity> |
Conditionally add const to a type.
Definition at line 378 of file TypeList.h.
| using TypeList::Nil = typedef List<> |
Definition at line 75 of file TypeList.h.
| using TypeList::NonEmptyTails_t = typedef typename NonEmptyTails<TypeList>::type |
Definition at line 172 of file TypeList.h.
| using TypeList::Not = typedef Compose<Fn<std::negation>, Predicate> |
Definition at line 397 of file TypeList.h.
| using TypeList::Nth_t = typedef typename Nth<N, TypeList>::type |
Definition at line 127 of file TypeList.h.
| using TypeList::PushBack_t = typedef typename PushBack<TypeList, Type>::type |
Definition at line 155 of file TypeList.h.
| using TypeList::PushFront_t = typedef typename PushFront<TypeList, Type>::type |
Definition at line 150 of file TypeList.h.
| using TypeList::Rest = typedef Tail<TypeList> |
Synonym for Tail.
Definition at line 113 of file TypeList.h.
| using TypeList::Rest_t = typedef Tail_t<TypeList> |
Definition at line 114 of file TypeList.h.
| using TypeList::Reverse_t = typedef typename Reverse<TypeList>::type |
Definition at line 368 of file TypeList.h.
| using TypeList::RightFold_t = typedef typename RightFold<Op, TypeList, Initial>::type |
Definition at line 347 of file TypeList.h.
| using TypeList::RightFoldList_t = typedef typename RightFoldList<Op, TypeList, Initial>::type |
Definition at line 365 of file TypeList.h.
| using TypeList::Second = typedef Nth<1, TypeList> |
Definition at line 136 of file TypeList.h.
| using TypeList::Second_t = typedef typename Second<TypeList>::type |
Definition at line 137 of file TypeList.h.
| using TypeList::StablePartition_t = typedef typename StablePartition<Predicate, TypeList>::type |
Definition at line 496 of file TypeList.h.
| using TypeList::Tail_t = typedef typename Tail<TypeList>::type |
Could simply define template<typename TypeList> using Tail_t = typename TypeList::tail; But instead it is defined in terms of Tail
Definition at line 107 of file TypeList.h.
| using TypeList::Tails_t = typedef typename Tails<TypeList>::type |
Definition at line 180 of file TypeList.h.
|
constexpr |
The constant value in the corresponding type.
Definition at line 442 of file TypeList.h.
|
constexpr |
Definition at line 481 of file TypeList.h.
|
constexpr |
Definition at line 475 of file TypeList.h.
|
staticconstexpr |
Definition at line 394 of file TypeList.h.
|
constexpr |
Definition at line 84 of file TypeList.h.
|
constexpr |
The constant value in the corresponding type.
Definition at line 468 of file TypeList.h.
|
constexpr |
The constant value in the corresponding type.
Definition at line 459 of file TypeList.h.
|
constexpr |
Definition at line 78 of file TypeList.h.
|
constexpr |
The constant value in the corresponding type.
Definition at line 450 of file TypeList.h.