c++ gcc c++11 clang

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.