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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!!