Ковырял я cube2 и нашел вот такой вот какиш:
static int addmodeltype(int type, model *(__cdecl *loader)(const char *))
{
modeltypes[type] = loader;
return type;
}
#define MODELTYPE(modeltype, modelclass) \
static model *__loadmodel__##modelclass(const char *filename) \
{ \
return new modelclass(filename); \
} \
static int __dummy__##modelclass = addmodeltype((modeltype), __loadmodel__##modelclass);

