[C++] problème de standard

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



--
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur

3 réponses

  1. 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
    1. Contributeur
      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
    2. 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
    3. Contributeur
      certe, c'est pareil, mais si le compilateur n'est pas gcc ??
      0
    4. ben là....je sèche....dsl
      0
  2. Contributeur
    bon, j'ai mis "unsing namespace std;" au début du fichier .cc et ça passe comme ça.
    0
    1. Contributeur
      Voir using ;-)))
      0
  3. Contributeur
    Bonjour,

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

    Cdlt,
    0