template <> \
std::string sotClassType<sotSigType, sotCoefType>::getTypeName(void) { \
return #sotSigType; \
} \
\
template <> \
const std::string sotClassType<sotSigType, sotCoefType>::CLASS_NAME = \
std::string(className) + "_" + #sotSigType + "_" + #sotCoefType; \
\
template <> \
const std::string &sotClassType<sotSigType, sotCoefType>::getClassName(void) \
const { \
return CLASS_NAME; \
} \
extern "C" { \
Entity *regFunction##_##
id(
const std::string &objname) { \
return new sotClassType<sotSigType, sotCoefType>(objname); \
} \
EntityRegisterer reg##_##
id(std::string(className) +
"_" + #sotSigType + \
"_" + #sotCoefType, \
®Function##_##id); \
}