vincent
-
25 oct. 2013 à 15:33
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
25 oct. 2013 à 19:30
Bonjour,
Je me permets de solliciter votre attention pour un bug des plus incomprehensible :
A priori les deux chaines de caractères sont identiques. L'opérateur operator== (ligne 3) indique qu'elle sont différentes mais la foncton compare (ligne 4) indique qu'elle sont identiques !
Une idée sur ce qui peut bien se passer ? Remarque : compilé sur Windows, pas de soucis, compilé sur Linux : problème.
Il n'y a pas de "bug". Tu n'as juste pas lu le manuel :p
"compare" ne retourne pas un booléen mais un entier.
- Si a > b, on retourne une valeur positive
- Si a == b, on retourne 0
- Si a < b, on retourne une valeur négative
Le "if (a == b)" est en fait un "if (!a.compare(b))"
compilé sur Windows, pas de soucis
Le comportement devrait être le même sous les deux OS. Vérifie quelle STL tu utilises sous Windows (il y une seule STL, mais beaucoup d'implémentations différentes !) Celles sous les (très) vieilles versions de Visual Studio étant buggés.