EventAnalysis
1.0.0
|
#include "Factory.h"
Go to the source code of this file.
Macros | |
#define | GETOVERRIDE(_ignored, _1, _2, _3, _4, _5, NAME, ...) NAME |
#define | NAMEDARGS0() |
#define | NAMEDARGS1(type) type arg1 |
#define | NAMEDARGS2(type, ...) type arg2, NAMEDARGS1(__VA_ARGS__) |
#define | NAMEDARGS3(type, ...) type arg3, NAMEDARGS2(__VA_ARGS__) |
#define | NAMEDARGS4(type, ...) type arg4, NAMEDARGS3(__VA_ARGS__) |
#define | NAMEDARGS5(type, ...) type arg5, NAMEDARGS4(__VA_ARGS__) |
#define | NAMEDARGS(...) |
#define | ARGNAMES0() |
#define | ARGNAMES1(type) arg1 |
#define | ARGNAMES2(type, ...) arg2, ARGNAMES1(__VA_ARGS__) |
#define | ARGNAMES3(type, ...) arg3, ARGNAMES2(__VA_ARGS__) |
#define | ARGNAMES4(type, ...) arg4, ARGNAMES3(__VA_ARGS__) |
#define | ARGNAMES5(type, ...) arg5, ARGNAMES4(__VA_ARGS__) |
#define | ARGNAMES(...) GETOVERRIDE(ignored, ##__VA_ARGS__, ARGNAMES5, ARGNAMES4, ARGNAMES3, ARGNAMES2, ARGNAMES1, ARGNAMES0)(__VA_ARGS__) |
#define | TYPENAMES0() typename T0 |
#define | TYPENAMES1(type) typename T1, TYPENAMES0() |
#define | TYPENAMES2(type, ...) typename T2, TYPENAMES1(__VA_ARGS__) |
#define | TYPENAMES3(type, ...) typename T3, TYPENAMES2(__VA_ARGS__) |
#define | TYPENAMES4(type, ...) typename T4, TYPENAMES3(__VA_ARGS__) |
#define | TYPENAMES5(type, ...) typename T5, TYPENAMES4(__VA_ARGS__) |
#define | TYPENAMES(...) |
#define | RegisterClassAsImp(counter, baseClassName, className, aliasName, ...) |
Macro for registration of classes into a Factory. More... | |
#define | RegisterClassAsHelper(counter, baseClassName, className, aliasName, ...) RegisterClassAsImp(counter, baseClassName, className, aliasName, ##__VA_ARGS__) |
#define | RegisterClassAs(baseClassName, className, aliasName, ...) RegisterClassAsHelper(__COUNTER__, baseClassName, className, aliasName, ##__VA_ARGS__) |
#define | RegisterClass(baseClassName, className, ...) RegisterClassAsHelper(__COUNTER__, baseClassName, className, #className, ##__VA_ARGS__) |
Macro for registration of classes into a Factory using the class name as registration name. More... | |
Utilities for automating the registration of a class in the corresponding factory.
#define ARGNAMES | ( | ... | ) | GETOVERRIDE(ignored, ##__VA_ARGS__, ARGNAMES5, ARGNAMES4, ARGNAMES3, ARGNAMES2, ARGNAMES1, ARGNAMES0)(__VA_ARGS__) |
#define ARGNAMES0 | ( | ) |
#define ARGNAMES1 | ( | type | ) | arg1 |
#define ARGNAMES2 | ( | type, | |
... | |||
) | arg2, ARGNAMES1(__VA_ARGS__) |
#define ARGNAMES3 | ( | type, | |
... | |||
) | arg3, ARGNAMES2(__VA_ARGS__) |
#define ARGNAMES4 | ( | type, | |
... | |||
) | arg4, ARGNAMES3(__VA_ARGS__) |
#define ARGNAMES5 | ( | type, | |
... | |||
) | arg5, ARGNAMES4(__VA_ARGS__) |
#define GETOVERRIDE | ( | _ignored, | |
_1, | |||
_2, | |||
_3, | |||
_4, | |||
_5, | |||
NAME, | |||
... | |||
) | NAME |
#define NAMEDARGS | ( | ... | ) |
#define NAMEDARGS0 | ( | ) |
#define NAMEDARGS1 | ( | type | ) | type arg1 |
#define NAMEDARGS2 | ( | type, | |
... | |||
) | type arg2, NAMEDARGS1(__VA_ARGS__) |
#define NAMEDARGS3 | ( | type, | |
... | |||
) | type arg3, NAMEDARGS2(__VA_ARGS__) |
#define NAMEDARGS4 | ( | type, | |
... | |||
) | type arg4, NAMEDARGS3(__VA_ARGS__) |
#define NAMEDARGS5 | ( | type, | |
... | |||
) | type arg5, NAMEDARGS4(__VA_ARGS__) |
#define RegisterClass | ( | baseClassName, | |
className, | |||
... | |||
) | RegisterClassAsHelper(__COUNTER__, baseClassName, className, #className, ##__VA_ARGS__) |
Macro for registration of classes into a Factory using the class name as registration name.
#define RegisterClassAs | ( | baseClassName, | |
className, | |||
aliasName, | |||
... | |||
) | RegisterClassAsHelper(__COUNTER__, baseClassName, className, aliasName, ##__VA_ARGS__) |
#define RegisterClassAsHelper | ( | counter, | |
baseClassName, | |||
className, | |||
aliasName, | |||
... | |||
) | RegisterClassAsImp(counter, baseClassName, className, aliasName, ##__VA_ARGS__) |
#define RegisterClassAsImp | ( | counter, | |
baseClassName, | |||
className, | |||
aliasName, | |||
... | |||
) |
Macro for registration of classes into a Factory.
The macro needs the name of the class, of its base class (i.e. the class which is the template argument of Factory) and the registration name. The registration name is the one which must be used as argument for Factory<BaseClass>::CreateObject.
#define TYPENAMES | ( | ... | ) |
#define TYPENAMES0 | ( | ) | typename T0 |
#define TYPENAMES1 | ( | type | ) | typename T1, TYPENAMES0() |
#define TYPENAMES2 | ( | type, | |
... | |||
) | typename T2, TYPENAMES1(__VA_ARGS__) |
#define TYPENAMES3 | ( | type, | |
... | |||
) | typename T3, TYPENAMES2(__VA_ARGS__) |
#define TYPENAMES4 | ( | type, | |
... | |||
) | typename T4, TYPENAMES3(__VA_ARGS__) |
#define TYPENAMES5 | ( | type, | |
... | |||
) | typename T5, TYPENAMES4(__VA_ARGS__) |