此代码无法在 Visual Studio 2013 中编译
template <typename X>
constexpr //error C2144: syntax error : 'bool' should be preceded by ';'
bool Test(X x)
{
return true;
}
但是,如果我删除 constexpr
关键字,它会编译。
但是 constexpr
应该不是问题吧?因为它总是返回 true。
出了什么问题?
最佳答案
尽管名称中有 2013,但 VS2013 并不声称是针对 C++11 标准的编译器(这是引入 constexpr
的时候)。
对于 C++11 编译器,__cplusplus
的值将是 201103L
。
因此您的编译器遇到了它无法识别的标记,并发出诊断。
关于c++ - 为什么添加 constexpr 会使 VS2013 拒绝这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47787511/