¿Cómo verifico la presencia de características individuales del lenguaje C++ 0x/C++ 11? Sé que Clang tiene un buen sistema para esto. ¿Qué hay de GCC, Visual Studio o Boost? Supongo que una forma de hacerlo es detectar la versión del compilador y relacionarla con las características introducidas en esa versión. Pero eso es engorroso. ¿Alguien ya ha hecho eso?Comprobación de características de C++ 11
Respuesta
boost config viene con una secuencia de comandos para comprobar algunas características de C++ 11 pero no todas.
Genera un archivo de configuración con macros para cada característica.
Creo que quisiste escribir algo después de * Ver: *. De todos modos, sí, Boost.Config es probablemente la mejor opción. Los chicos de Boost ya rastrean esa información para que no tenga que hacerlo: informan al equipo del compilador para saber con precisión cuándo fue lo suficientemente estable como para anunciarse, o en el caso de Clang solicitar nuevas banderas de verificación. –
En realidad, fue un remanente de una borrador de respuesta. Lo eliminaré. Gracias. – mirk
Su herramienta de construcción puede ayudar con esto.
CMake tiene el comando try_compile
que le permite comprobar si un ejemplo de código compilará y establecerá una variable en función del resultado de la compilación.
Por el momento acabo de utilizar las funciones más comúnmente compatibles, como auto
mecanografía.
A menudo puede usar Boost para reemplazar las características faltantes de la biblioteca, y esta puede ser la mejor opción durante algunos años mientras se actualizan los compiladores y las bibliotecas y se corrigen los errores.
El C++ 11 función de lista de compatibilidad para GCC está aquí: http://gcc.gnu.org/projects/cxx0x.html
nota de la advertencia:
Importante: El apoyo de GCC para C++ 11 es todavía experimental. Algunas funciones se implementaron en base a las primeras propuestas, y no se intentará mantener la compatibilidad con versiones anteriores cuando se actualicen para que coincidan con el estándar final de C++ 11.
- 1. Comprobación de Autotools para C++ 11
- 2. ¿Cómo puedo usar las características de C++ 11 en Clang?
- 3. ¿Qué características de C++ 11 admite Visual Studio 2010?
- 4. ¿Cómo usar las características de C++ 11 con Autoconf?
- 5. QT Creator, comprobación de sintaxis para C++ 11
- 6. compilador de C++ que admite todas las características de concurrencia de C++ 11?
- 7. Políticas de comprobación de herramientas de Visual Studio 11
- 8. clang ++ invocación de C++ 11
- 9. Correcciones/características/mejoras del depurador de Visual Studio 11 (para la depuración de C# en particular)?
- 10. ¿Cómo actualizar a C++ 11?
- 11. C++ 11 características de la biblioteca dependientes del compilador Proxys específicos
- 12. C# comprobación de igualdad
- 13. C++ 11: ¿un nuevo idioma?
- 14. recolección de basura en C++ 11
- 15. C++ 11 biblioteca de reflexión
- 16. C# Comprobación nula de objeto
- 17. Comprobación existe un miembro, posiblemente en una clase base, C++ versión 11
- 18. C++ wrapper para boost/C++ 11
- 19. ¿Puedo usar C++ 11 con Xcode?
- 20. C++ 11 std :: array
- 21. C++ 11 regex_token_iterator
- 22. C++ 11 semántica "automática"
- 23. C++ 11 macro predefinida
- 24. C++ 11 error enable_if
- 25. Delegado en C++ 11
- 26. Estado de soporte de Clang 3.1 y C++ 11
- 27. ¿Es una buena idea usar el último GCC para el desarrollo de iOS para obtener las características de C++ 11?
- 28. C++ 11 protector de salida de alcance, ¿una buena idea?
- 29. las plantillas de expresión y C++ 11
- 30. Incluyendo encabezados C++ 11 con Clang/LLVM
La respuesta directa sería escribir un código con esa característica y compilarla. – iammilind
¿Por qué debería cerrarse esta pregunta? –
@ Nordlöw: Dos personas votaron para cerrarlo como un duplicado de [esta pregunta] (http://stackoverflow.com/q/6095885/636019). – ildjarn