Lumiera  0.pre.03
»edit your freedom«
Combine< X, _ENUM_ > Struct Template Reference

#include "lib/meta/typelist-manip.hpp"

Description

template<class X, template< class > class _ENUM_>
struct lib::meta::Combine< X, _ENUM_ >

build all possible combinations, based on a enumeration of the basic cases.

For each of the types in the argument list, an "enumeration generator" template is invoked, yielding a list of the possible base cases. These base cases are then combined with all the combinations of the rest, yielding all ordered combinations of all cases. Here, "ordered" means that the base cases of the n-th element will appear in the n-th position of the resulting lists,

For the typical example, the "base cases" are {flag(on), flag(off)}, so we get a list-of-lists, featuring all possibilities to combine these distinct toggles.

Definition at line 298 of file typelist-manip.hpp.

Public Types

typedef Distribute< typename _ENUM_< X >::List, Node< NullType, NullType > >::List List
 

Member Typedef Documentation

◆ List

typedef Distribute< typename _ENUM_<X>::List , Node<NullType,NullType> >::List List

Definition at line 300 of file typelist-manip.hpp.

+ Collaboration diagram for Combine< X, _ENUM_ >:

The documentation for this struct was generated from the following file: