[C++] problème de standard

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai un code source dans lequel j'inclus <math.h> et où j'utilise la fonction isfinite().
Le problème c'est que gcc 3 me dit qu'il ne connais pas cette fonction, et je suis obliger de mettre std::isfinite().
En revanche gcc 4, lui connais isfinite() mais ne veux pas de std::isfinite().
je ne sais pas comment me sortir de ce merdier.
Je précise que je cherche à faire un code portable, donc que la solution doit fonctionner avec un maximum de compilateurs.

Merci



A voir également:

3 réponses

Sans_pseudo
 
Salut,
je suis pas un grand expert c++, mais peut etre avec un truc du sttyle tu pourrais t'en sortir:
#if __GNUC__ > 3
isfinite();
#else
std::isfinite()

@+
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Merci. C'est vrai que je pourrai faire un truc dans le genre, mais je préfèrerai une méthode un peu moins lourde à inclure dans le code.
0
Sans_pseudo
 
sinon une macro...mais je sais pas si ca fonctionnerai....
#if __GNUC__ > 3
#define IS_FINITE isfinite()
#else
#define IS_FINITE std::isfinite()

mais pas testé et pas sur que ca fonctionne....
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
certe, c'est pareil, mais si le compilateur n'est pas gcc ??
0
Sans_pseudo
 
ben là....je sèche....dsl
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
bon, j'ai mis "unsing namespace std;" au début du fichier .cc et ça passe comme ça.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Voir using ;-)))
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Si tu fais du C++, il ne faut pas utiliser gcc... Essaie d'utiliser g++

Cdlt,
0