Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
typelist-util.hpp File Reference

Metaprogramming: simple helpers for working with lists-of-types. More...

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 compile-time 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.

#include "lib/meta/typelist.hpp"
#include "lib/meta/util.hpp"
#include <algorithm>

Namespaces

namespace  lib
 Implementation namespace for support and library code.
 
namespace  lib::meta
 

Classes

struct  count< Nil >
 
struct  count< Node< TY, TYPES > >
 
struct  maxSize< Nil >
 
struct  maxSize< Node< TY, TYPES > >
 
struct  maxAlign< Nil >
 
struct  maxAlign< Node< TY, TYPES > >
 
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  ConstAll< Nil >
 
struct  ConstAll< Node< TY, TYPES > >
 

Class Documentation

◆ lib::meta::ConstAll< Nil >

struct lib::meta::ConstAll< Nil >
Class Members
typedef Nil List
+ Collaboration diagram for ConstAll< Nil >:

◆ lib::meta::ConstAll< Node< TY, TYPES > >

struct lib::meta::ConstAll< Node< TY, TYPES > >
Class Members
typedef Node< add_const_t< TY >, typename List > List
+ Collaboration diagram for ConstAll< Node< TY, TYPES > >: