probleme template - C++ - Programmation
Marsh Posté le 20-07-2004 à 23:57:33
c'est quoi ce code? 
jocebug?
Marsh Posté le 21-07-2004 à 00:05:30
Pourquoi UtiliseMyIterator::f() est elle virtuelle ? 
 
et tous ces : 
  template class UtiliseMyIterator<long>; 
  template class UtiliseMyIterator<double>; 
  template class UtiliseMyIterator<bool>; 
  template class UtiliseMyIterator<short>;  
 
ca sert a quoi o_O ?
Marsh Posté le 21-07-2004 à 00:06:23
bein il veut juste les faire instancier par le compilo
Marsh Posté le 21-07-2004 à 00:07:44
ok ^^ bon ben reste que le bug de SUN (ce qui m'etonenrasi pas)
Marsh Posté le 21-07-2004 à 00:08:49
comment ca c'est quoi ce code ? 
c un extrait d'un truc bien plus compliqué. 
j'ai laissé que ce qui est important pour le probleme 
ca devrait compiler normalement 
 
pourquoi f est virtuelle ? parce que j'ai envie, peu importe !
Marsh Posté le 21-07-2004 à 00:09:34
| Oualb a écrit : comment ca c'est quoi ce code ?  | 
 
 
ben voila, les codes partielle c mal. 
Serieusement, je penche sur un bug de CC ... 
tu as essayé avec un *bon* compilo style gcc 3.3 ?
Marsh Posté le 21-07-2004 à 00:19:49
et si tu forces la main sur la conversion? 
 
|   template<typename T>  | 
Marsh Posté le 21-07-2004 à 00:24:30
si je force le cast ca marche ... 
 
mais bon pourquoi le cast implicite marche pour tous les types simples du langage sauf pour bool ? 
bool c'est un type à part ou quoi ? 
Marsh Posté le 21-07-2004 à 00:27:44
non, essaye avec juste une seule instanciation d'un autre type intégré
Marsh Posté le 21-07-2004 à 00:30:22
ReplyMarsh Posté le 21-07-2004 à 00:30:22
si je commentes la ligne avec le bool ca marche 
y'a vraiment que le bool qui foire 
et ca fait chier. 
 
Marsh Posté le 21-07-2004 à 00:32:42
| verdoux a écrit : std::vector<bool> oui | 
 
 
tu peux donner plus de détails la ? 
 
en quoi c'est plus spécial que std::vector<long> ?
Marsh Posté le 21-07-2004 à 00:34:34
Le guru a dit (et je ne fais que bêtement le répéter) 
std::vector<bool> IS NOT a Container 
 One consequence of this is that it can't just return a normal bool& from its operator[] or its dereferenced iterators 
http://www.gotw.ca/gotw/050.htm
Marsh Posté le 21-07-2004 à 00:34:41
parce que std::vector a une spécialistion particulère pour les bool (bitmap)
Marsh Posté le 21-07-2004 à 00:43:11
c'est fou ca !! 
j'avais jamais entendu parler de ca  
 
eh bien merci ! je vais me débrouiller autrement 
 
genre avec des char, ou alors il faudrait que je vire la spécialisation pour bool, mais bon c'est quand même un peu hacker la STL !
Marsh Posté le 20-07-2004 à 23:56:29
Salut
J'ai un probleme avec le bout de code suivant :
j'essaie de compiler ca sous Sun avec CC5.3, et la troisieme instantiation de template, celle avec bool, me fait une erreur :
operation * MyIterator<bool> is invalid.
pourtant ca marche pour les autres. qu'est ce que le bool a de différent ?
j'ai essayé avec visual studio 6, ca marche.
alors bug dans la compilo de Sun, ou une siouxerie que j'ai pas pigée ?