![]() |
Lumiera 0.pre.04
»edit your freedom«
|
Some basic facilities for manipulating type sequences. More...
Go to the source code of this file.
Some basic facilities for manipulating type sequences.
While typelist.hpp provides the foundation of metaprogramming with typelists, manipulating the type sequences themselves (i.e. Types<T1,T2,...> instances) requires some additional helper templates supplemented here.
Definition in file typeseq-util.hpp.
#include "lib/meta/typelist.hpp"#include "lib/meta/typelist-manip.hpp"#include "lib/meta/util.hpp"Namespaces | |
| namespace | lib |
| Implementation namespace for support and library code. | |
| namespace | lib::meta |
Classes | |
| struct | count< TYPES > |
| Metafunction counting the number of Types in the collection. More... | |
| struct | count< Types< TYPES... > > |
| struct | Prepend< T, Types< TYPES... > > |
| struct | Types< Node< H, T > > |
| Additional specialisation of the basic type sequence type, allowing to re-create a (flat) type sequence from a typelist. More... | |
| struct | Types< Nil > |
| struct | Types< NilNode > |
| struct | Split< Types< T1, TS... > > |
| struct | Split< Types<> > |
| class | Shifted< TYPES, i > |
| Helper: generate a type sequence left shifted by i steps, filling in Nil at the end. More... | |
| struct | Shifted< TYPES, 0 > |
| struct | Pick< Types< TYPES... >, i > |
| specialisation: pick n-th element from a type sequence More... | |
| struct | Repeat< T, N > |
| Generate a type-sequence filled with N times the same type T. More... | |
| struct | Repeat< T, 0 > |
Functions | |
| template<class X > | |
| constexpr size_t | indexOfType () |
| Find the index of the first incidence of a type in a type-sequence. | |
| template<class X , class T , class... TYPES> | |
| constexpr size_t | indexOfType () |
| struct lib::meta::Prepend< T, Types< TYPES... > > |
| struct lib::meta::Types< Node< H, T > > |
| struct lib::meta::Split< Types< T1, TS... > > |
| struct lib::meta::Split< Types<> > |
| struct lib::meta::Shifted< TYPES, 0 > |
| struct lib::meta::Pick< Types< TYPES... >, i > |
| struct lib::meta::Repeat |