Есть ли несоответствие стандарту?
От: Аноним  
Дата: 11.09.05 16:44
Оценка:
Есть такой способ регистрации. Везде ли он должен работать?
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] и т.п. для выделения фрагментов кода. -- ПК
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.