novedades - Diferencia entre las opciones de compilación de gcc std=c++ 1y y std=c++ 14
lenguaje c++ 11 (2)
En el caso de gcc 4.9.2 mencionado por usted, no hay diferencia entre c++14
y c++1y
. Pero para la versión anterior de gcc, por ejemplo, gcc 4.8.1 no hay opción de c++14
g++: error: unrecognized command line option ''-std=c++14''
Porque el año de aceptación estándar aún no se conocía. En tales casos, el uso de la -std=c++1y
es la única solución para habilitar algunas partes del estándar de c ++ 14 que se aproxima.
Instalé gcc 4.9.2. Compilé el programa usando el siguiente comando:
/root/gcc-4.9.2/bin/g++ -std=c++1y testing.cpp
Tenga en cuenta que además de la opción -std=c++1y
, hay otra opción -std=c++14
. ¿Funcionará el compilador de la misma manera y generará exactamente el mismo ejecutable para ambas opciones?
C++ 14
es el último estándar ISO, y debe usarse a menos que necesite alguna característica no estándar de gcc.
c++1y
es un nombre que se usó para referirse a la norma c ++ 14 antes de que se completara, por lo que es muy probable que se adhiera a un borrador de la norma, pero no a la norma en sí. Puede haber algunas diferencias mínimas entre los dos, pero c++14
es el estándar ISO.
En resumen, utilice c++14
.