Есть такой способ регистрации. Везде ли он должен работать?
template<class T>
class AAAA {
struct helper {
helper(){std::cout<<"+"<<typeid(T).name()<<"\n";}//Необязательный конструктор
virtual~helper(){
AAAA<T>::registrator;//В любой виртуальной функции упомяните регистратор
std::cout<<"-"<<typeid(T).name()<<"\n";
}
};
static helper registrator;
};
template<class T>//Это тоже необходимо
typename AAAA<T>::helper AAAA<T>::registrator;
//Теперь любое инстанцирование AAAA<T> создаёт регистратор
template AAAA<int>;//Можно так
class your_class : AAAA<your_class>{};//или так
Не забывайте, пожалуйста, использовать теги [c]...[/c], [code]...[/code] и т.п. для выделения фрагментов кода. -- ПК