Если у вас есть шаблонный шаблон со статической переменной, есть ли способ получить переменную одинаково для всех типов класса, а не для каждого из них?
В настоящий момент мой код выглядит так:
template <typename T> class templateClass{
public:
static int numberAlive;
templateClass(){ this->numberAlive++; }
~templateClass(){ this->numberAlive--; }
};
template <typename T> int templateClass<T>::numberAlive = 0;
И главное:
templateClass<int> t1;
templateClass<int> t2;
templateClass<bool> t3;
cout << "T1: " << t1.numberAlive << endl;
cout << "T2: " << t2.numberAlive << endl;
cout << "T3: " << t3.numberAlive << endl;
Выводится:
T1: 2
T2: 2
T3: 1
Где в качестве желаемого поведения:
T1: 3
T2: 3
T3: 3
Я предполагаю, что могу сделать это с помощью какого-то глобального int, что любой тип этого класса увеличивает и уменьшает, но это не кажется очень логичным или объектно-ориентированным
Спасибо всем, кто может помочь мне реализовать это.