Lumiera  0.pre.03
»edit your freedom«
typelist-util.hpp File Reference

Go to the source code of this file.

Description

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)

See also
generator.hpp
TypelistUtil_test
lib::SimpleAllocator usage example (for isInList)
TypelistManip_test
typelist.hpp

Definition in file typelist-util.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.