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