Если у меня есть класс с шаблоном:
template<typename T>
class foo{
T m_a;
foo(T a){
m_a = a;
};
~foo(){
};
};
Есть ли способ сохранить несколько вариантов этого?
Например, вектор, который может хранить указатель на foo< int >
и foo< string >
одновременно?
Изменить дополнительную информацию
Я хочу скрыть реализацию этого:
EventListener<string> ev1;
EventListener<int, int> ev2;
EventListener<int, string, double> ev3;
ev1(&Events::nameChange, &nameChangeCallback);
ev2(&Events::healthChange, &healthChangeCallback);
ev3(&Events::newUser, &newUserCallback);
ev1.processEvents();
ev2.processEvents();
ev3.processEvents();
вэто:
EventManager em;
em.listen(&Events::nameChange, &nameChangeCallback);
em.listen(&Events::healthChange, &healthChangeCallback);
em.listen(&Events::newUser, &newUserCallback);
em.processEvents();
EventManager необходимо создать и сохранить EventListeners в векторе, чтобы иметь возможность запомнить их и удалить их в деструкторе.
Вот где я застрял.