classe de traits et conteneurs
Bonjour,
J'ai une petite interrogation à propos des classes de traits lorsque l'on développe des conteneurs génériques (tels que STL ou boost). Prenons l'exemple suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
template<class T>
struct A
{
T value;
typedef T type;
};
template<class Conteneur>
struc Traits
{
typedef Conteneur::type type;
};
template<class Conteneur>
void maFonction(Conteneur c)
{
//def 1
Conteneur::type a;
//def2
Traits<Conteneur>::type b;
} |
D'après ce que j'ai compris c'est la seconde définition qui doit être utilisée, pourtant les tests que j'ai réalisés fonctionnent tout aussi bien avec la première. Pourquoi dois-je alors faire intervenir une classe de traits?
Merci d'avance!!