J'essaie de créer une classe modèle qui contient une liste statique d'objets dont il n'existe qu'un seul. Ce que j'ai jusqu'ici fonctionne mais il me donne une copie de "mylist" pour chaque type différent de paramètre de classe B. Comment puis-je le changer pour avoir un "mylist" pour toutes les instanciations de classe B sans tenir compte des paramètres du template?Utilisation de variables statiques avec des modèles
C'est ce que j'ai:
template <class T> class A {
...
};
template <class T> class B {
static list<A<T> > mylist;
...
};
template <class T> list< A<T> > B<T>::mylist;
Merci à l'avance :)
Vous êtes fondamentalement en train de mal interpréter les modèles. Étant donné 'template class Foo;', chaque instance de 'Foo ' pour différents 'T's est un type _ complètement différent. Par conséquent, si 'Foo <>' contient un membre de données statiques, chaque instance de 'Foo ' pour différents 'T' contiendra un membre de données statiques différent. Pour avoir un membre de données qui peut contenir différents types, regardez [Boost.Variant] (http://www.boost.org/libs/variant/) si tous les types sont connus à l'avance, ou [Boost.Any] (http: //www.boost.org/libs/any/) sinon. (Mais vraiment, votre conception semble très discutable en premier lieu.) –
ildjarn
Êtes-vous après un singleton? http://www.infernodevelopment.com/singleton-c – Joel