dans le genre d'extension subtiles qui m'ont posés pb pour un projet c++, la comparaison des char*.
j'avais ca :
------------
private :
static const struct lien {
int num_commande ;
//si je met un string ici, visual c++ et c++ builder
//me jette avec un message abscons.
//je vérifirai si cela est 'standard'
char* commande ;
}
m_Correspondance[];
------------
donc, sous gcc, c'etait pas un char*, mais un string.
et en mettant char*, les comparaisons marchaient encore.
mais c'est pas le standard.
et le projet était a rendre sous c++ builder, qui lui se contente de comparer les pointeurs... et gcc compare les chaines pointés, c'est completement differents.
y aussi des bugs dans c++ builder, et sous visual c++, qui empeche de compiler quand il y a une initialisation d'un membre constant statique :
static const int COIN = 42;
ben ca passe pas ( visual ) et c'est standard...
pour builder, c'est le contraire, je croit .
c'est a dire que c'est initialiser la constante a part qui marche pas...
je suis pas sur, j'ai pas de builder a porté de main.
pour reference, c'etait dans un article de frederic mazué, un test de c++ builder dans Programmez! que j'ai trouvé la premiere fois ca.
et maintenant dés que mon code compile pas, je sais que c'est un bug dans le compilo ;)
[^] # Re: Comparatif Intel C++ 7.0 / Gcc 3.2.1
Posté par Misc (site web personnel) . En réponse à la dépêche Comparatif Intel C++ 7.0 / Gcc 3.2.1. Évalué à 2.
j'avais ca :
------------
private :
static const struct lien {
int num_commande ;
//si je met un string ici, visual c++ et c++ builder
//me jette avec un message abscons.
//je vérifirai si cela est 'standard'
char* commande ;
}
m_Correspondance[];
------------
donc, sous gcc, c'etait pas un char*, mais un string.
et en mettant char*, les comparaisons marchaient encore.
mais c'est pas le standard.
et le projet était a rendre sous c++ builder, qui lui se contente de comparer les pointeurs... et gcc compare les chaines pointés, c'est completement differents.
y aussi des bugs dans c++ builder, et sous visual c++, qui empeche de compiler quand il y a une initialisation d'un membre constant statique :
static const int COIN = 42;
ben ca passe pas ( visual ) et c'est standard...
pour builder, c'est le contraire, je croit .
c'est a dire que c'est initialiser la constante a part qui marche pas...
je suis pas sur, j'ai pas de builder a porté de main.
pour reference, c'etait dans un article de frederic mazué, un test de c++ builder dans Programmez! que j'ai trouvé la premiere fois ca.
et maintenant dés que mon code compile pas, je sais que c'est un bug dans le compilo ;)