我问这个问题是因为我不敢相信现在是 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/