Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud Meurgues
Michaël Delva wrote:
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis '_STL::map<_Key,_Tp, _Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. Par exemple ici: http://www.comeaucomputing.com/tryitout/ Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info, #include <map> enum toto { oui = 0,non}; std::map<toto,int> test; passe sans problème.
-- Arnaud (Supprimez les geneurs pour me répondre)
Michaël Delva wrote:
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis '_STL::map<_Key,_Tp,
_Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de
tester sur des bons compilateurs C++.
Par exemple ici:
http://www.comeaucomputing.com/tryitout/
Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info,
#include <map>
enum toto { oui = 0,non};
std::map<toto,int> test;
passe sans problème.
--
Arnaud
(Supprimez les geneurs pour me répondre)
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis '_STL::map<_Key,_Tp, _Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. Par exemple ici: http://www.comeaucomputing.com/tryitout/ Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info, #include <map> enum toto { oui = 0,non}; std::map<toto,int> test; passe sans problème.
-- Arnaud (Supprimez les geneurs pour me répondre)
Mathieu Malaterre
Arnaud Meurgues wrote:
Michaël Delva wrote:
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis '_STL::map<_Key,_Tp, _Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. Par exemple ici: http://www.comeaucomputing.com/tryitout/ Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info, #include <map> enum toto { oui = 0,non}; std::map<toto,int> test; passe sans problème.
g++ 3.3:
void foo(int i) { double b[i]; }
passe sans probleme... alors que c'est pas admissible en c++.
Sinon pour ton probleme, le truc qui gene c'est d'utiliser un enum pour la clef... Enfin si c'est pour le fun, c'est peut etre qu'il n'y pas d'operateur '<' definit pour le enum, a moins que ce soit le copy constructor ??
0.02 cents
Mathieu
Arnaud Meurgues wrote:
Michaël Delva wrote:
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis
'_STL::map<_Key,_Tp,
_Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de
tester sur des bons compilateurs C++.
Par exemple ici:
http://www.comeaucomputing.com/tryitout/
Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info,
#include <map>
enum toto { oui = 0,non};
std::map<toto,int> test;
passe sans problème.
g++ 3.3:
void foo(int i)
{
double b[i];
}
passe sans probleme... alors que c'est pas admissible en c++.
Sinon pour ton probleme, le truc qui gene c'est d'utiliser un enum pour
la clef...
Enfin si c'est pour le fun, c'est peut etre qu'il n'y pas d'operateur
'<' definit pour le enum, a moins que ce soit le copy constructor ??
le code suivant ne compile pas avec Borland C++ Builder 6:
Mauvais compilo, changer de compilo... ;)
enum toto { oui = 0,non};
std::map<toto,int> test;
Il met met:
Impossible de créer la spécialisation template depuis '_STL::map<_Key,_Tp, _Compare,_Alloc>'
J'ai pourtant vu des exemples sur le net où ça se faisait...
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. Par exemple ici: http://www.comeaucomputing.com/tryitout/ Comeau est une bonne référence en ce qui concerne le respect de la norme.
Pour info, #include <map> enum toto { oui = 0,non}; std::map<toto,int> test; passe sans problème.
g++ 3.3:
void foo(int i) { double b[i]; }
passe sans probleme... alors que c'est pas admissible en c++.
Sinon pour ton probleme, le truc qui gene c'est d'utiliser un enum pour la clef... Enfin si c'est pour le fun, c'est peut etre qu'il n'y pas d'operateur '<' definit pour le enum, a moins que ce soit le copy constructor ??
0.02 cents
Mathieu
Arnaud Meurgues
Mathieu Malaterre wrote:
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. [...]
Comeau est une bonne référence en ce qui concerne le respect de la norme. g++ 3.3:
void foo(int i) { double b[i]; }
passe sans probleme... alors que c'est pas admissible en c++.
Ben oui. C'est pourquoi je recommende un bon compilateur qui fait référence. En l'occurrence, Comeau donne:
" Comeau C/C++ 4.3.3 (Aug 6 2003 15:13:37) for ONLINE_EVALUATION_BETA1 Copyright 1988-2003 Comeau Computing. All rights reserved. MODE:strict errors C++
"ComeauTest.c", line 3: error: expression must have a constant value double b[i]; ^
"ComeauTest.c", line 3: warning: variable "b" was declared but never referenced double b[i]; ^
1 error detected in the compilation of "ComeauTest.c".
In strict mode, with -tused, Compile failed "
-- Arnaud (Supprimez les geneurs pour me répondre)
Mathieu Malaterre wrote:
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de
tester sur des bons compilateurs C++.
[...]
Comeau est une bonne référence en ce qui concerne le respect de la norme.
g++ 3.3:
void foo(int i)
{
double b[i];
}
passe sans probleme... alors que c'est pas admissible en c++.
Ben oui. C'est pourquoi je recommende un bon compilateur qui fait référence.
En l'occurrence, Comeau donne:
"
Comeau C/C++ 4.3.3 (Aug 6 2003 15:13:37) for ONLINE_EVALUATION_BETA1
Copyright 1988-2003 Comeau Computing. All rights reserved.
MODE:strict errors C++
"ComeauTest.c", line 3: error: expression must have a constant value
double b[i];
^
"ComeauTest.c", line 3: warning: variable "b" was declared but never
referenced
double b[i];
^
1 error detected in the compilation of "ComeauTest.c".
In strict mode, with -tused, Compile failed
"
--
Arnaud
(Supprimez les geneurs pour me répondre)
Un bon test pour savoir si ça vient du compilo ou du C++, c'est de tester sur des bons compilateurs C++. [...]
Comeau est une bonne référence en ce qui concerne le respect de la norme. g++ 3.3:
void foo(int i) { double b[i]; }
passe sans probleme... alors que c'est pas admissible en c++.
Ben oui. C'est pourquoi je recommende un bon compilateur qui fait référence. En l'occurrence, Comeau donne:
" Comeau C/C++ 4.3.3 (Aug 6 2003 15:13:37) for ONLINE_EVALUATION_BETA1 Copyright 1988-2003 Comeau Computing. All rights reserved. MODE:strict errors C++
"ComeauTest.c", line 3: error: expression must have a constant value double b[i]; ^
"ComeauTest.c", line 3: warning: variable "b" was declared but never referenced double b[i]; ^
1 error detected in the compilation of "ComeauTest.c".
In strict mode, with -tused, Compile failed "
-- Arnaud (Supprimez les geneurs pour me répondre)