39 #define ClassNameNoDebug(TypeNameString) \
40 static const char* typeName_() { return TypeNameString; } \
41 static const ::Foam::word typeName
45 #define NamespaceNameNoDebug(TypeNameString) \
46 inline const char* typeName_() { return TypeNameString; } \
47 extern const ::Foam::word typeName
51 #define TemplateNameNoDebug(TemplateNameString) \
52 class TemplateNameString##Name \
55 TemplateNameString##Name() {} \
56 ClassNameNoDebug(#TemplateNameString); \
61 #define FunctionNameNoDebug(TypeNameString) \
62 static const char* typeName_() { return TypeNameString; } \
63 static const ::Foam::functionName typeName
71 #define ClassName(TypeNameString) \
72 ClassNameNoDebug(TypeNameString); \
77 #define NamespaceName(TypeNameString) \
78 NamespaceNameNoDebug(TypeNameString); \
83 #define TemplateName(TemplateNameString) \
84 class TemplateNameString##Name \
87 TemplateNameString##Name() {} \
88 ClassName(#TemplateNameString); \
93 #define FunctionName(TypeNameString) \
94 FunctionNameNoDebug(TypeNameString); \
102 #define defineTypeNameWithName(Type, Name) \
103 const ::Foam::word Type::typeName(Name)
106 #define defineTypeName(Type) \
107 defineTypeNameWithName(Type, Type::typeName_())
110 #define defineTemplateTypeNameWithName(Type, Name) \
112 defineTypeNameWithName(Type, Name)
114 #define defineTemplate2TypeNameWithName(Type, Name) \
116 defineTypeNameWithName(Type, Name)
119 #define defineTemplateTypeName(Type) \
120 defineTemplateTypeNameWithName(Type, #Type)
123 #define defineNamedTemplateTypeName(Type) \
124 defineTemplateTypeNameWithName(Type, Type::typeName_())
127 #define defineFunctionNameWithName(Type, Name) \
128 const ::Foam::functionName Type::typeName(Name)
131 #define defineFunctionTypeName(Type) \
132 defineFunctionNameWithName(Type, Type::typeName_())
139 #define defineTypeNameAndDebug(Type, DebugSwitch) \
140 defineTypeName(Type); \
141 defineDebugSwitch(Type, DebugSwitch)
144 #define defineTypeNameAndDebugWithName(Type, Name, DebugSwitch) \
145 defineTypeNameWithName(Type, Name); \
146 defineDebugSwitchWithName(Type, Name, DebugSwitch)
149 #define defineTemplateTypeNameAndDebugWithName(Type, Name, DebugSwitch) \
150 defineTemplateTypeNameWithName(Type, Name); \
151 defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch)
155 #define defineTemplateTypeNameAndDebug(Type, DebugSwitch) \
156 defineTemplateTypeNameAndDebugWithName(Type, #Type, DebugSwitch)
159 #define defineNamedTemplateTypeNameAndDebug(Type, DebugSwitch) \
160 defineNamedTemplateTypeName(Type); \
161 defineNamedTemplateDebugSwitch(Type, DebugSwitch)
164 #define defineFunctionTypeNameAndDebug(Type, DebugSwitch) \
165 defineFunctionTypeName(Type); \
166 defineDebugSwitch(Type, DebugSwitch)
173 #define defineTemplate2TypeNameAndDebugWithName(Type, Name, DebugSwitch) \
174 defineTemplate2TypeNameWithName(Type, Name); \
175 defineTemplate2DebugSwitchWithName(Type, Name, DebugSwitch)
179 #define defineTemplate2TypeNameAndDebug(Type, DebugSwitch) \
180 defineTemplate2TypeNameAndDebugWithName(Type, #Type, DebugSwitch)
Macro definitions for debug switches.