Bonjour,
J'ai dans un header un code semblable à celui-ci.
Quelque part dans un header de base la macro USE_UNORDERED est définie. En principe donc le type MySet est de type boost::unordered_set<>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Ailleurs dans le code j'ai une classe qui instancie MyClass, mais curieusement elle instancie le membre f_set comme étant un std::set<> et non pas comme un boost::unordered_set<>.
Puis, plus loin dans le code, lorsque l'instance en question éxecute sa méthode MyClass::Init(tr) f_set est de type boost::unordered_set<>. Bien sûr, là ça plante.
En bref, une même instance est tantôt d'un type tantôt de l'autre, comme si la macro USE_UNORDERED n'était pas "vue" à tout moment par le (pré-)compilateur. Et pourtant l'instantiation et le code se trouvent dans un même cpp, tous les headers étant déclarés au début.
Je n'arrive pas à déterminer ou est l'erreur dans mon code (l'ordre de déclaration des headers par exemple), si erreur il y a...
J'utilise visual studio 2005 et 2010, la même erreur se produisant avec les deux compilateurs. Je n'utilise pas la précompilation des entêtes.
Merci de m'éclairer.

 

 
		
		 
        

 
			
			




 Deux types pour une même instance
 Deux types pour une même instance
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
  
 
 
   
 

 
  
			 
   .
.
 Envoyé par screetch
 Envoyé par screetch
					



 
			 
			
Partager