Этот код constexpr не скомпилирован в Visual Studio 2013 версии 12.0.21005.1 REL
Есть ли новый компилятор Visual Studio, который работает с 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;
}
вывод из компиляции:
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 ==========
Херб Саттер упоминает Constexpr в своем блоге, но неясно, в какой версии он работает/будет работать? http://herbsutter.com/2013/09/09/visual-studio-2013-rc-is-now-available/#comment-13521