Я хотел бы иметь возможность регистрировать свои классы в пределах std::map
или вектора, не думайте о дубликатах и т.д.
но я не хочу регистрировать его в вызове конструктора класса или любой функции класса, так или иначе выполняйте его вне класса, поэтому, даже если я никогда не создам экземпляр, я мог бы знать, что он существует.
Пример:
// Somehow, from outside the myclass, in a scope that will be called
//in the begining of the proccess, add "MyClass1" to a
//list so it can be instanciated later
class MyClass1{
}
Тогда я бы сделал #define
этого или, если возможно, шаблон.
Я не знаю, понял ли я (снова)...
Я хочу сказать, что мне нужно знать каждый класс, который у меня есть, без необходимости звонить каждому из них.
Моя идея состояла в том, чтобы создать #define
, чтобы упростить объявление заголовка класса и вызвать то, что зарегистрировало бы этот класс в списке
Можно ли это сделать или мне придется сопоставить его вручную?
// desirable:
#define CLASSREGISTER(myclass) makethemagic(##myclass); class myclass {
};
Я знаю, с этим определением я не мог использовать наследование и т.д. Я хотел бы попытаться привести пример того, что я собирался создать как-то...