J'ai installé gcc 4.9.2. J'ai compilé le programme en utilisant la commande suivante:
/root/gcc-4.9.2/bin/g++ -std=c++1y testing.cpp
Notez qu'en plus de l'option -std=c++1y
, il existe une autre option -std=c++14
. Le compilateur fonctionnera-t-il de la même manière et générera-t-il exactement le même exécutable pour les deux options?
C++ 14
est la dernière norme ISO et doit être utilisée sauf si vous avez besoin d'une fonctionnalité non standard gcc.
c++1y
est un nom qui a été utilisé pour faire référence à la norme c ++ 14 avant qu'elle ne soit terminée, il est donc très probablement conforme à un projet de norme, mais pas à la norme proprement dite. Il peut y avoir quelques différences minuscules entre les deux, mais c++14
est la norme ISO.
En bref, utilisez c++14
.
Dans le cas de gcc 4.9.2 mentionné par vous, il n'y a pas de différence entre c++14
et c++1y
. Mais pour la version antérieure de gcc, par ex. gcc 4.8.1 il y a pas de c++14
option
g++: error: unrecognized command line option '-std=c++14'
car l'année de l'acceptation standard n'était pas encore connue. Dans ce cas, utilisez le -std=c++1y
l'option est seule solution pour activer certaines parties de la norme c ++ 14 venant en sens inverse.