c++ - 2016 年 MSVC 不支持 noexcept 关键字

标签 c++ c++11 visual-studio-2015

我问这个问题是因为我不敢相信现在是 2016 年,而 MSVC 编译器仍然不支持 noexcept 关键字。下面是简单的代码:

class Test
{
public:
    Test() noexcept
    {
    }
};

生成此错误:

error C3646: 'noexcept' : unknown override specifier

此代码由 Visual Studio 在 Win32 平台上编译,但当我尝试在 UWP 上编译时会生成此错误。我是否遗漏了一些明显的东西,或者他们是否为 Win32 和 UWP 使用了不同的 C++ 编译器?

我使用的是 Microsoft Visual Studio Community 2015 Update 3。版本 14.0.25424.00。

最佳答案

问题是由于使用旧的Windows8.1工程文件引起的。这些项目被配置为使用旧的 v12 平台工具集 (Visual Studio 2013),这解释了为什么 C++11 功能不可用。同时,除了创建新的 Universal App 项目(不是 Windows8 universal)之外,没有办法切换到使用更新的 v14 工具集(VS2015)。

关于c++ - 2016 年 MSVC 不支持 noexcept 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687296/

相关文章:

python-2.7 - 无法使用 chainer 4.1.0 导入 cupy

c# - 将 WPF 应用程序传输到 Mobile c#

c++ - dynamic_cast 不保证一个有效的、完整的对象?

c++ - 最大化内存使用

c++ - 使用 shared_ptr 处理不完整类型的 Pimpl 习语

c++ - 为什么默认参数不能依赖于非默认参数?

cordova - Visual Studio 2015/ Cordova "Unable to start Debugging"

c++ - 是否有任何 C++ 编译器删除内联时始终持有相同答案的 if 语句?

c++ - 在 C++ 中添加二进制数

c++ - 如何在 C++ 中将 static_assert 用于 constexpr 函数参数?