Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Metaprogramming: simple helpers for working with lists-of-types.
This header provides some very basic "meta functions" for extracting pieces of information from a list-of-types. In Lumiera, we use template metaprogramming and especially such lists-of-types, whenever we build some common implementation backbone, without being able to subsume all participating types (classes) into a single inheritance hierarchy.
The "meta functions" defined here are templates; to access the "result" of such a meta function, we instantiate the template and then access one of the embedded constant definitions (usually the enum constant named value
)
Definition in file typelist-util.hpp.
#include "lib/meta/typelist.hpp"
Classes | |
struct | ConstAll< TYPES > |
Build a list of const types from a given typelist. More... | |
struct | ConstAll< Node< TY, TYPES > > |
struct | ConstAll< NullType > |
struct | count< TYPES > |
Metafunction counting the number of Types in the collection. More... | |
struct | count< Node< TY, TYPES > > |
struct | count< NullType > |
struct | IsInList< TY, TYPES > |
Metafunction to check if a specific type is contained in a given typelist. More... | |
struct | IsInList< TY, Node< TY, TYPES > > |
struct | IsInList< TY, Node< XX, TYPES > > |
struct | maxAlign< TYPES > |
Metafunction " max( alignof(T) ) for T in TYPES ". More... | |
struct | maxAlign< Node< TY, TYPES > > |
struct | maxAlign< NullType > |
struct | maxSize< TYPES > |
Metafunction " max( sizeof(T) ) for T in TYPES ". More... | |
struct | maxSize< Node< TY, TYPES > > |
struct | maxSize< NullType > |
Functions | |
template<typename TY , typename TYPES > | |
constexpr bool | isInList () |
convenience shortcut: query function | |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |