为什么添加 constexpr 会使 VS2013 拒绝这个?
Why does adding constexpr make VS2013 reject this?
此代码无法在 Visual Studio 2013
中编译
template <typename X>
constexpr //error C2144: syntax error : 'bool' should be preceded by ';'
bool Test(X x)
{
return true;
}
但是,如果我删除 constexpr
关键字,它会编译。
但是constexpr
应该不是问题吧?因为它总是 returns true.
出了什么问题?
尽管名称中有 2013,VS2013 并不声称是针对 C++11 标准的编译器(这是 constexpr
引入时)。
对于 C++11 编译器,__cplusplus
的值将是 201103L
。
因此您的编译器遇到了它无法识别的标记,并发出诊断。
此代码无法在 Visual Studio 2013
中编译template <typename X>
constexpr //error C2144: syntax error : 'bool' should be preceded by ';'
bool Test(X x)
{
return true;
}
但是,如果我删除 constexpr
关键字,它会编译。
但是constexpr
应该不是问题吧?因为它总是 returns true.
出了什么问题?
尽管名称中有 2013,VS2013 并不声称是针对 C++11 标准的编译器(这是 constexpr
引入时)。
对于 C++11 编译器,__cplusplus
的值将是 201103L
。
因此您的编译器遇到了它无法识别的标记,并发出诊断。