c++ - 为什么添加 constexpr 会使 VS2013 拒绝这个?

标签 c++ templates visual-studio-2013 constexpr

此代码无法在 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/

相关文章:

c++ - 混合模板、多重继承和非默认构造函数

html - 如何在 One Page Wonder Bootstrap 模板中插入背景图片?

c++ - 为什么 std::declval 添加引用?

.net - 如何在 VS2013 上使用 runsettings 文件并行执行测试

C++ 如何在 Boost Global Logger 上设置严重性过滤器

c++ - opencv的 "findContours"错误: Thread stopped with code -1073740777

c++ - CUrl(MSVS 库)还是 libcurl?

c++ - 有人可以帮我把这个 c++ 代码翻译成 c 吗?

azure - 如何使用Azure云服务(Web角色)部署App_Data文件

visual-studio-2013 - 如何在没有硬编码路径的 Visual Studio 2013 后构建事件中使用 signtool?