tipos resueltos principiantes para ocupa float ejercicios datos cuantos bytes c++ c++11 compiler-construction

ocupa - ejercicios resueltos en c++ para principiantes



¿Por qué el soporte del compilador de C++ 11 todavía requiere un indicador? (2)

C ++ 11 ha sido estándar durante un par de años, pero un compilador no cambiará su modo predeterminado a C ++ 11 hasta que:

  • Como mínimo absoluto, el soporte de C ++ 11 está completo en ese compilador y en las bibliotecas que utiliza. Y también estable, si el escritor compilador tiene alguna preocupación en absoluto por la fiabilidad.
  • Preferiblemente, un mayor número de versión aumenta en el compilador, ya que C ++ 11 no es totalmente compatible con C ++ 03.
  • Idealmente, en un horario bien conocido para que los usuarios puedan prepararse para el cambio.

Básicamente, muchas personas (y makefiles) confían en que el compilador sea un compilador conforme a C ++ 03, o al menos en que se conozca su no conformidad. Dado que C ++ 11 introduce nuevas instancias de no conformidad con C ++ 03, el cambio es potencialmente traumático.

Podría decirse que cualquiera que confíe en C ++ 03 debería haber especificado una opción para decirlo, y los cambios en el modo predeterminado no supondrían ninguna diferencia para ellos. Pero una vez que hayas documentado el valor predeterminado de tu compilador, la gente va a confiar en eso, ya sea intencionalmente o no.

En particular, para gcc, la página del manual 4.8.2 dice que "el soporte para C ++ 11 todavía es experimental". Por lo tanto, creo que, en última instancia, la respuesta a su pregunta puede ser que lleva más de 2 años implementar correctamente C ++ 11, incluso a partir de todo el trabajo realizado con los proyectos de normas.

Entiendo que las características experimentales de un lenguaje de programación no deberían estar habilitadas de forma predeterminada, así que recibo las -std=c++0x y -std=c++1y . Sin embargo, C ++ 11 ahora es estándar desde hace un par de años. ¿Por qué los compiladores aún requieren -std=c++11 para habilitar el soporte para sus características?


Una pequeña actualización. GCC 6.1 y versiones posteriores utilizan un modo C ++ 14 de forma predeterminada [source] .