Lumiera
0.pre.03
»edit your freedom«
|
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"
Classes | |
struct | Pick< Types< TYPES... >, i > |
specialisation: pick n-th element from a type sequence More... | |
struct | Prepend< T, TYPES > |
Helper: prepend a type to an existing type sequence, thus shifting all elements within the sequence to the right, eventually dropping the last element. More... | |
struct | Prepend< T01, Types< T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, IGN > > |
class | Shifted< TYPES, i > |
Helper: generate a type sequence left shifted by i steps, filling in NullType at the end. More... | |
struct | Shifted< TYPES, 0 > |
struct | Split< TYPES > |
Helper: separate parts of a type sequence. More... | |
struct | Split< Types< T01, T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 > > |
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... | |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |