Mon programme compile correctement a mon travail mais a des
erreurs chez moi...
Les versions de g++ sont :
a mon travail g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
chez moi g++ (GCC) 3.4.1 (Mandrakelinux (Alpha 3.4.1-3mdk)
L'erreur de compilation est la suivante :
Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous
/usr/include/stdlib.h:748: note: candidates are: int abs(int)
Cette erreur n'apparait pas a mon travail...
Quelqu'un a-t-il une explication?
Est-ce que les résultats fournis par abs(double) sont alors erronés
a mon travail?
Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous
Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double abs (double)" dans math.h. Ça vient peut-être de là...
J'ai pourtant #include <math.h> dans mon fichier...
Gabriel Dos Reis
fanny & michou writes:
| Bonjour, | | Mon programme compile correctement a mon travail mais a des | erreurs chez moi... | Les versions de g++ sont : | a mon travail g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42) | chez moi g++ (GCC) 3.4.1 (Mandrakelinux (Alpha 3.4.1-3mdk) | | L'erreur de compilation est la suivante : | Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous | /usr/include/stdlib.h:748: note: candidates are: int abs(int) | | Cette erreur n'apparait pas a mon travail... | Quelqu'un a-t-il une explication?
CEci devrait être une FAQ.
#include <cmath>
-- Gaby
fanny & michou <fanny.michou@free.fr> writes:
| Bonjour,
|
| Mon programme compile correctement a mon travail mais a des
| erreurs chez moi...
| Les versions de g++ sont :
| a mon travail g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
| chez moi g++ (GCC) 3.4.1 (Mandrakelinux (Alpha 3.4.1-3mdk)
|
| L'erreur de compilation est la suivante :
| Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous
| /usr/include/stdlib.h:748: note: candidates are: int abs(int)
|
| Cette erreur n'apparait pas a mon travail...
| Quelqu'un a-t-il une explication?
| Bonjour, | | Mon programme compile correctement a mon travail mais a des | erreurs chez moi... | Les versions de g++ sont : | a mon travail g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42) | chez moi g++ (GCC) 3.4.1 (Mandrakelinux (Alpha 3.4.1-3mdk) | | L'erreur de compilation est la suivante : | Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous | /usr/include/stdlib.h:748: note: candidates are: int abs(int) | | Cette erreur n'apparait pas a mon travail... | Quelqu'un a-t-il une explication?
CEci devrait être une FAQ.
#include <cmath>
-- Gaby
Gabriel Dos Reis
fanny & michou writes:
| > On Fri, 10 Sep 2004 23:17:19 +0200, fanny & michou | > : | > | >>Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous | > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double | > abs (double)" dans math.h. Ça vient peut-être de là... | > | J'ai pourtant #include <math.h> dans mon fichier...
Il te faut
#include <cmath>
-- Gaby
fanny & michou <fanny.michou@free.fr> writes:
| > On Fri, 10 Sep 2004 23:17:19 +0200, fanny & michou
| > <fanny.michou@free.fr>:
| >
| >>Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous
| > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double
| > abs (double)" dans math.h. Ça vient peut-être de là...
| >
| J'ai pourtant #include <math.h> dans mon fichier...
| > On Fri, 10 Sep 2004 23:17:19 +0200, fanny & michou | > : | > | >>Graph.cpp:467: error: call of overloaded `abs(double)' is ambiguous | > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double | > abs (double)" dans math.h. Ça vient peut-être de là... | > | J'ai pourtant #include <math.h> dans mon fichier...
Il te faut
#include <cmath>
-- Gaby
Bertrand Lenoir-Welter
Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double abs (double)" dans math.h. Ça vient peut-être de là...
Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du flottant double ou long double, c'est "fabs" ou "fabsl".
Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double
abs (double)" dans math.h. Ça vient peut-être de là...
Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose
bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du
flottant double ou long double, c'est "fabs" ou "fabsl".
Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double abs (double)" dans math.h. Ça vient peut-être de là...
Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du flottant double ou long double, c'est "fabs" ou "fabsl".
Gabriel Dos Reis
Bertrand Lenoir-Welter writes:
| > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double | > abs (double)" dans math.h. Ça vient peut-être de là... | | Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose | bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du | flottant double ou long double, c'est "fabs" ou "fabsl".
Pour du flottant double, float ou long double, C++ définit abs() dans <cmath> et <math.h>. Mais vu ce qui se passe avec beaucoup d'implémentations, on a plus de chance d'avoir abs(double) dans <cmath> que dans <math.h>.
De toute façon, c'est de l'hystérie d'avoir surcharger abs() de cette façon.
| > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double
| > abs (double)" dans math.h. Ça vient peut-être de là...
|
| Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose
| bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du
| flottant double ou long double, c'est "fabs" ou "fabsl".
Pour du flottant double, float ou long double, C++ définit abs() dans
<cmath> et <math.h>. Mais vu ce qui se passe avec beaucoup
d'implémentations, on a plus de chance d'avoir abs(double) dans
<cmath> que dans <math.h>.
De toute façon, c'est de l'hystérie d'avoir surcharger abs() de cette
façon.
| > Si je ne m'abuse, "int abs(int)" est déclaré dans stdlib.h et "double | > abs (double)" dans math.h. Ça vient peut-être de là... | | Il me semble que tu t'abuses. Le help de Borland sur <math.h> propose | bien "abs", mais il renvoie à <stdlib.h> sur de l'entier. Pour du | flottant double ou long double, c'est "fabs" ou "fabsl".
Pour du flottant double, float ou long double, C++ définit abs() dans <cmath> et <math.h>. Mais vu ce qui se passe avec beaucoup d'implémentations, on a plus de chance d'avoir abs(double) dans <cmath> que dans <math.h>.
De toute façon, c'est de l'hystérie d'avoir surcharger abs() de cette façon.