Lumiera  0.pre.03
»edit your freedom«
InstantiateChainedCombinations< TYPES_1, TYPES_2, _X_, BASE > Struct Template Reference

#include "lib/meta/generator-combinations.hpp"

Description

template<class TYPES_1, class TYPES_2, template< class, class, class > class _X_, class BASE = NullType>
struct lib::meta::InstantiateChainedCombinations< TYPES_1, TYPES_2, _X_, BASE >

Build a Case matrix.

The given parameter template X will be instantiated for each possible combination of the elements from both parameter type-lists. All these instantiations will be chained up into a linear inheritance chain rooted at the BASE type.

Note
the custom-supplied template X needs to take a 3rd parameter, and inherit from this parameter, in order to form that chain. Typically you'll define some (static) functions within that template, which then forward the call to the given BASE (and of course, that BASE then needs to define this function as well).

Definition at line 82 of file generator-combinations.hpp.

+ Inheritance diagram for InstantiateChainedCombinations< TYPES_1, TYPES_2, _X_, BASE >:
+ Collaboration diagram for InstantiateChainedCombinations< TYPES_1, TYPES_2, _X_, BASE >:

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