我问这个问题是因为我简直不敢相信现在是2016年,而MSVC编译器仍然不支持noexcept
关键字。下面的简单代码:
class Test
{
public:
Test() noexcept
{
}
};
产生此错误:
error C3646: 'noexcept' : unknown override specifier
该代码由Win32平台上的Visual Studio编译,但是当我尝试在UWP上编译它时,会生成此错误。我是否遗漏了一些明显的信息,或者它们是否为Win32和UWP使用了不同的C++编译器?
我正在使用Microsoft Visual Studio Community 2015更新3。版本14.0.25424.00。
最佳答案
该问题是由使用旧的Windows8.1项目文件引起的。这些项目被配置为使用旧的v12平台工具集(Visual Studio 2013),这说明了为什么C++ 11功能不可用。同时,除了创建新的Universal App项目(非Windows8通用)以外,没有其他方法可以切换到使用更新的v14工具集(VS2015)。