此代码无法在Visual Studio 2013中编译
template <typename X>
constexpr //error C2144: syntax error : 'bool' should be preceded by ';'
bool Test(X x)
{
return true;
}
但是,如果删除constexpr
关键字,则会进行编译。
但constexpr
不应该成为一个问题吗?因为它总是返回真实。
出了什么问题?
答案 0 :(得分:3)
尽管2013年的名称,VS2013并不是一个针对C ++ 11标准的编译器(当<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jdbc</artifactId>
<version>4.0.4</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
被引入时)。
对于C ++ 11编译器,constexpr
的值为__cplusplus
。
因此,您的编译器会遇到它无法识别的令牌,并发出诊断信息。