ejecutar compilar compilador como c++ c++11 visual-studio-2013 constexpr

c++ - compilar - gcc compilador



constexpr no compilando en VC2013 (4)

Como lo mencionaron los demás, noviembre de 2013 Customer Technology Preview (CTP) le dará acceso a constexpr *

Tenga en cuenta que solo con la descarga necesitará cambiar su "Platform Toolset" a "CTP Visual C ++ Nov 2013 CTP (CTP_Nov2013)" para usar el nuevo compilador. Puede hacerlo abriendo las "Páginas de propiedades" de su proyecto Y yendo a: "Propiedades de configuración"> "General" y luego cambiando el "Conjunto de herramientas de plataforma".

* Hay un poco de información contradictoria sobre a qué porción de constexpr tienes acceso, pero definitivamente no es toda la definición de constexpr de los estándares. Microsoft dice here que el CTP de noviembre de 2013 agrega:

soporte de constexpr (excepto para constructores)

Microsoft dice aquí que contiene:

constexpr (excepto las funciones de miembro)

Ni siquiera puedo probar si tiene soporte para funciones miembro, porque definitivamente no tiene soporte para ningún tipo de construcción constexpr . Por ejemplo, este código proporciona este error con el CTP de noviembre de 2013:

error C2127: inicialización ilegal de la entidad ''constexpr'' con una expresión no constante

Una nota adicional: al momento de escribir el Visual Studio 2015 Preview aún no es compatible constexpr construcción constexpr . Manteniendo mis dedos cruzados en el lanzamiento final.

Este código constexpr no está compilado en Visual Studio 2013 versión 12.0.21005.1 REL

¿Existe un compilador de Visual Studio más nuevo que funcione con constexpr?

#include <iostream> constexpr int factorial(int n) { return n <= 1 ? 1 : (n * factorial(n - 1)); } int main(void) { const int fact_three = factorial(3); std::cout << fact_three << std::endl; return 0; }

salida de la compilación:

1>------ Build started: Project: Project1, Configuration: Debug Win32 ------ 1> Source.cpp 1>..../source.cpp(3): error C2144: syntax error : ''int'' should be preceded by '';'' 1>..../source.cpp(3): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Herb Sutter menciona constexpr en su blog, pero no está claro en qué versión funciona / funcionará. http://herbsutter.com/2013/09/09/visual-studio-2013-rc-is-now-available/#comment-13521




constexpr no es compatible con Visual Studio 2013 RTM, consulte la tabla de compatibilidad . Esto no solo es cierto para la versión RTM, sino también para las actualizaciones de Visual Studio.

Si desea seguir con Visual Studio 2013, puede descargar el compilador C ++ de Visual C ++ de noviembre de 2013 que viene con algunas características nuevas, consulte el blog de MSDN . Desafortunadamente, Microsoft no se ha fusionado con las últimas características de actualización de Visual Studio y las características de CTP, y afirma claramente que no tiene previsto hacerlo.

Si lo queremos todo, tenemos que esperar a Visual Studio 2015, ver el blog de MSDN sobre VS 2015 Preview .