¿Cuáles son las características de C++11
que tienen suficiente madurez que puedo comenzar a utilizar de forma segura en mis proyectos. Estoy hablando de GCC
principalmente rara vez necesito Visual Studio. y obviamente no quiero incluir una característica en mi código que requiera una reescritura después de algunos meses. y debería incluso comenzar a usar estas características en este mismo comienzo? porque lo que sea que hagamos en su mayoría no es c++11 dependent
, también podemos hacer todo y todas las cosas en los métodos de la vieja escuela. Entonces, ¿deberíamos incluso comenzar a usar las características de C++ 11 en esta etapa inicial?Qué característica estable de C++ 11 se puede usar con seguridad
Respuesta
El estándar C++ 11 finalmente se hace y se publica, por lo que no habrá más cambios. Las implementaciones todavía se retrasan un poco y pueden implementar versiones ligeramente más antiguas de C++ 0x, pero es probable que no noten mucha diferencia cuando se actualicen.
C++ 11 no es perfectamente compatible con versiones anteriores, por lo que lo primero que debe hacer es comenzar a desarrollar teniendo en cuenta la compatibilidad con C++ 11. GCC tiene una bandera de advertencia, "-WC++ 0x-compat", para ayudar con esto. Las incompatibilidades son bastante pequeñas, pero esto debería revelar cualquier cosa que sea un problema.
Una gran incompatibilidad es que el ABI de libstdC++ cambia con la mudanza a C++ 11, por lo que también deberá asegurarse de que puede ocuparse de eso.
Una vez que sepa que es seguro moverse, simplemente comience a construir en modo C++ 11. Puede adoptar gradualmente las funciones de C++ 11 que le resulten útiles a medida que escribe un nuevo código o cambia el código anterior. También puede considerar buscar usos de la funcionalidad obsoleta, como las antiguas especificaciones de excepción, y reemplazarlas con las nuevas.
Hay muchas cosas nuevas, eche un vistazo a la norma si puede obtenerla o alguna documentación en línea. Encuentro que la mayoría de las cosas realmente interesantes que quiero usar directamente están en la biblioteca. Desafortunadamente, parece ser que las implementaciones actuales todavía tienen más retraso.
Es posible que desee visitar:
http://gcc.gnu.org/projects/cxx0x.html
Este enlace da el soporte C++ 0x en diferentes versiones del CCG.
Sugiero que use C++ 11 ahora (simplemente agregando -std = C++ 0x en la línea de comando de GCC). Si tuvo suerte, entonces nada cambiaría en su código. Incluso si no usa ninguna característica de C++ 11, aún puede beneficiarse de las mejoras de rendimiento provenientes de las referencias rvalue y la semántica de movimiento.
- 1. Concurrent C++ 11 - ¿Qué cadenas de herramientas se pueden usar?
- 2. ¿Puedo usar C++ 11 con Xcode?
- 3. Objective-C estable ABI
- 4. ¿Cómo usar las características de C++ 11 con Autoconf?
- 5. ¿Debo usar C++ 11 lambdas ahora?
- 6. ¿Alguna garantía de seguridad de subprocesos de C++ 11 se aplica a bibliotecas de subprocesos de terceros compiladas/vinculadas con C++ 11?
- 7. ¿Qué significa esta construcción C++/C++ 11?
- 8. Característica Título Personalizado: No se puede combinar títulos personalizados en la API de 11 y por encima de
- 9. No se puede establecer Eclipse Juno C++ con std = C++ 11
- 10. ¿Qué seguridad se puede agregar a Applets de Java?
- 11. ¿Qué significa thread_local en C++ 11?
- 12. Sobrecarga de C# con genéricos: ¿error o característica?
- 13. C++ 11: ¿En qué orden se destruyen las capturas lambda?
- 14. ¿Se puede usar un reproductor de video/audio HTML5 con un sistema de seguridad Flash?
- 15. Tiene la característica "Inicialización de miembro de clase" creada en C++ 11?
- 16. Ninject Rebind en el tiempo de ejecución, ¿se puede usar como característica alternar?
- 17. En C++ 11, ¿se considera un operador?
- 18. ¿Qué DB noSQL usar con C?
- 19. No se puede habilitar la característica con el receptor de funciones a través de PowerShell
- 20. No se puede leer la longitud característica de indefinido
- 21. ¿Qué tan estable es WPF?
- 22. ¿Qué tan estable es NSubstitute?
- 23. ¿Se puede usar valgrind junto con Cygwin?
- 24. ¿Cómo puedo usar las características de C++ 11 en Clang?
- 25. C++ 11 devoluciones de llamada con estilo?
- 26. ¿Qué significa seguridad con subprocesos?
- 27. Incluyendo encabezados C++ 11 con Clang/LLVM
- 28. ¿Qué versión de hadoop usar?
- 29. ¿Qué es "estado estable de Java 6"
- 30. ¿Qué señales se pueden usar con seguridad para matar un proceso de Git y cuáles no?
A qué versión de GCC se dirige, dónde se ejecutará este código, qué utilizan los sistemas de destino ... Esta página detalla cuándo las características están disponibles en las versiones de GCC: http://gcc.gnu.org/projects/cxx0x. html – birryree
Estoy usando MinGW en Windows. He comprobado esa versión. y en Linux tengo 4.3.2 sin embargo, no sé dónde me ubicaré la próxima vez para el trabajo. –
son esas características abiertas a cambios? o son estables? –