29 #ifndef addToRunTimeSelectionTable_H
30 #define addToRunTimeSelectionTable_H
41 const char* baseTypeName,
42 const word& thisTypeName,
51 #define addToRunTimeSelectionTable\
52 (baseType,thisType,argNames) \
55 baseType::add##argNames##ConstructorToTable<thisType> \
56 add##thisType##argNames##ConstructorTo##baseType##Table_; \
58 bool add##thisType##argNames##To##baseType##ToC_ = \
59 addToRunTimeSelectionTableToC \
60 (#baseType, baseType::typeName_(), thisType::typeName, STR(LIB_NAME))
64 #define addNamedToRunTimeSelectionTable\
65 (baseType,thisType,argNames,lookup) \
68 baseType::add##argNames##ConstructorToTable<thisType> \
69 add_##lookup##_##thisType##argNames##ConstructorTo##baseType##Table_ \
72 bool add_##lookup##_##thisType##argNames##To##baseType##ToC_ = \
73 addToRunTimeSelectionTableToC \
74 (#baseType, baseType::typeName_(), #lookup, STR(LIB_NAME))
79 #define addBackwardCompatibleToRunTimeSelectionTable\
80 (baseType,thisType,argNames,oldType,lookup) \
83 baseType::add##argNames##ConstructorToTable<thisType> \
84 add_##oldType##_##thisType##argNames##ConstructorTo##baseType##Table_ \
89 #define addRemovableToRunTimeSelectionTable\
90 (baseType,thisType,argNames) \
93 baseType::addRemovable##argNames##ConstructorToTable<thisType> \
94 addRemovable##thisType##argNames##ConstructorTo##baseType##Table_; \
96 bool addRemovable##thisType##argNames##To##baseType##ToC_ = \
97 addToRunTimeSelectionTableToC \
98 (#baseType, baseType::typeName_(), thisType::typeName, STR(LIB_NAME))
105 #define addTemplatedToRunTimeSelectionTable\
106 (baseType,thisType,Targ,argNames) \
109 baseType<Targ>::add##argNames##ConstructorToTable<thisType<Targ>> \
110 add##thisType##Targ##argNames##ConstructorTo##baseType##Targ##Table_; \
112 bool add##thisType##Targ##argNames##To##baseType##Targ##ToC_ = \
113 addToRunTimeSelectionTableToC \
116 baseType<Targ>::typeName_(), \
117 thisType<Targ>::typeName, \
124 #define addNamedTemplatedToRunTimeSelectionTable\
125 (baseType,thisType,Targ,argNames,lookup) \
128 baseType<Targ>::add##argNames##ConstructorToTable<thisType<Targ>> \
129 add_##lookup##_##thisType##Targ##argNames##ConstructorTo##baseType## \
130 Targ##Table_(#lookup); \
132 bool add_##lookup##_##thisType##Targ##argNames##To##baseType##Targ##ToC_ = \
133 addToRunTimeSelectionTableToC \
134 (#baseType, baseType<Targ>::typeName_(), #lookup, STR(LIB_NAME))
General C-preprocessor macros.
bool addToRunTimeSelectionTableToC(const char *baseType, const char *baseTypeName, const word &thisTypeName, const char *libName)