OVH Cloud OVH Cloud

Map de types différents

1 réponse
Avatar
sej
Bonjour,
J'ai une classe template :

template<typename Type>
class MyClass
{
...
}


et je souhaite stocker mes objets templates dans une liste car j'ai mon
propre gestionnaire mémoire.

avant j'avais

class MyClass
{
...
}

et je pouvais les stocker dans une map :
map<u32*, MyClass*> _mapAddr; // version sans template

Maintenant comment faire pour stocker mes éléments MyClass templates
dans une même map ?

1 réponse

Avatar
Fabien LE LEZ
On Tue, 28 Mar 2006 17:25:09 +0200, sej :

Maintenant comment faire pour stocker mes éléments MyClass templates
dans une même map ?


Tu ne peux pas.

Si tu as
template<typename Type> class MyClass

alors un MyClass<int> et un MyClass<std::string> sont deux classes
totalement indépendantes.

La solution : faire en sorte que toutes les classes MyClass<> héritent
de la même classe de base :

template<typename Type> class MyClass: public MaClasseDeBase
{...

map<u32*, MaClasseDeBase*> _mapAddr;