c++ - su ubuntu
¿Cuáles son las diferencias entre-std=c++ 11 y-std=gnu++ 11? (1)
¿Cuáles son las diferencias entre -std=c++11
y -std=gnu++11
como parámetro de compilación para gcc y clang? La misma pregunta con c99
y gnu99
? Conozco los estándares C ++ y C, son las diferencias en los parámetros que me interesan.
He leído en alguna parte que tiene que ver con algunas extensiones, pero no tengo claro cuáles y cómo elegir entre una u otra para un nuevo proyecto.
Como usted mismo ha descubierto, la diferencia entre las dos opciones es si las extensiones de GNU que infringen el estándar de C ++ están habilitadas o no. Las extensiones de GNU se describen here . Tenga en cuenta que algunas extensiones aún pueden tener efecto cuando se utiliza -std=c++11
, siempre que no contradigan el estándar.
Por ejemplo, cuando uso el compilador MinGW, necesito las extensiones para un Boost.Lexical_Cast
funcionamiento. Pero, mientras no use ninguno de ellos, es mejor que se apegue al estándar sin extensiones para una máxima portabilidad. Esto podría ser útil si se ve obligado a cambiar el compilador.