[deb]message d'erreur const un declared in this scope
Bonjour,
j'ai un probleme avec un message d'erreur apres une decl. de constante avant une classe.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include <iostream>
using namespace std;
int const max=10;
// maximum=10
//template <class X>
class vecteur
{
private:
int taille;
int t[max];
public:
vecteur();
vecteur(int t); |
Et j'ai chaque fois ce message d'erreur avec Dev-Cpp 4.9.9
Citation:
In file included from test.cpp:2:
vecteur.h:19: error: `max' was not declared in this scope
make.exe: *** [test.o] Error 1
Exécution terminée
Pourtant il devrait venir avec les includes ou on doit le declare plusieur fois
D'avance merci pour l'aide
Marc_3
Re: [deb]message d'erreur const un declared in this scope
Le coupable est
Code:
using namespace std;
qui importe le template std::max dans le namespace global avec pour resultat de rendre ambigues les deux declarations. Le message d'erreur de g++ depuis 3.4 n'est pas tres bon. Il etait meilleur avec la version 3.2.2
Citation:
foo.cpp:12: use of `max' is ambiguous
foo.cpp:4: first declared as `const int max' here
/opt/gcc-3.2.2/include/c++/3.2.2/bits/stl_algobase.h:207: also declared as `std::max' here