Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Helpers for working with lib::meta::Types (i.e.
lists-of-types). The main purpose is to build interfaces and polymorphic implementations (using virtual functions) based on templated Types or Collections of types, which is not possible without Template Metaprogramming.
The facilities in this header work by instantiating another template, which is passed in as (template template) parameter, for each of a given sequence of types. What varies is the way how this "for each" instantiation is mixed or inherited into the resulting product.
Definition in file generator.hpp.
#include "lib/meta/typelist.hpp"
Classes | |
struct | InheritFrom< T > |
Helper to just inherit from the given type(s) More... | |
class | InstantiateChained< TYPES, _X_, BASE > |
Build a single inheritance chain of template instantiations. More... | |
class | InstantiateChained< Node< TY, TYPES >, _X_, BASE > |
class | InstantiateChained< NullType, _X_, BASE > |
class | InstantiateForEach< TYPES, _X_, BASE > |
Apply a template to a collection of types. More... | |
class | InstantiateForEach< Node< TY, TYPES >, _X_, BASE > |
class | InstantiateForEach< NullType, _X_, BASE > |
class | InstantiateWithIndex< TYPES, _X_, BASE, i > |
A Variation of InstantiateChained providing an incremented Index value template parameter. More... | |
class | InstantiateWithIndex< Node< TY, TYPES >, _X_, BASE, i > |
class | InstantiateWithIndex< NullType, _X_, BASE, i > |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |