Étant donné le programme :
enum E : int
{
A, B, C
};
g++ -c test.cpp
fonctionne très bien. Cependant, clang++ -c test.cpp
donne les erreurs suivantes :
test.cpp:1:6: error: ISO C++ forbids forward references to 'enum' types
enum E : int
^
test.cpp:1:8: error: expected unqualified-id
enum E : int
^
2 errors generated.
Ces messages d'erreur n'ont aucun sens pour moi. Je ne vois aucune référence à l'avenir.
0 votes
Pour info, GCC compile maintenant (à partir de 5 ou 6) avec
std=c++14
par défaut, alors que Clang utilise toujoursstd=c++98
AFAIK.2 votes
Je pense que cela aiderait si vous incluiez les versions et les options du compilateur.
0 votes
Versions du compilateur (plus transcription complète du shell pour les personnes suggérant que mon code source réel ne correspond pas à celui de la question) : dump.thecybershadow.net/6bf06811a8f77fce574017622d1dd8e7/…
7 votes
Cette question me semble raisonnable, il ne s'agit pas d'une erreur typographique, ni d'une question visant à obtenir une aide au débogage qui n'inclut pas le code et le message d'erreur.
3 votes
N'a pas voté, mais en utilisant
-std=c++11
est la première chose à essayer lorsque vous utilisez une fonctionnalité de C++11 et obtenez des messages d'erreur étranges4 votes
Je ne savais pas à l'époque que c'était une fonctionnalité de C++11. La syntaxe n'est pas nouvelle - les compilateurs MS supportent cette syntaxe depuis au moins VS2005.