无法在 VS2015 中禁用编译器警告

Can't disable compiler warning in VS2015

我有一个使用 Qt5.5.1 的应用程序,它在 Visual Studio 2013 年构建良好。我试图让它在 Visual Studio 2015 年与 Qt5.6 Beta 一起工作,但我收到新的编译器警告:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_typeinfo.h(41): error C2220: warning treated as error - no 'object' file generated
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_typeinfo.h(41): warning C4623: '__std_type_info_data': default constructor was implicitly defined as deleted

我正在使用警告级别 4 (/W4) 并将警告视为错误 (/WX)。但是当转到 属性 页面并使用 C/C++->Advanced->Disable Specific Warnings 来禁用警告 4623 时,我看到了同样的问题。如果我将警告级别更改为 3 (/W3) 或更高,同样的事情也会发生。

为什么 Visual Studio 就其自身的代码给我警告,为什么我不能禁用它?

感谢@Drop 上面的建议,我在 "Disable Specific Warnings" 字段中输入 4623 后检查了编译器设置中显示的内容。看到/wd"4623"我很惊讶。当我删除它然后在 "Additional Options" 字段中添加 /wd4623 时,警告消失了。

这似乎是 Visual Studio 2015 中的错误,但我找不到任何参考资料。

更新:该错误在 Visual Studio 2015 Update 3 中仍然存在,因此我已将其报告给 Microsoft,他们可以重新创建它。

在您的通用头文件中使用 #pragma

例如,在头文件中添加以下行。

// To disable warning messages 4456 and 4457.  
#pragma warning( disable : 4456 4457 ) 

参见 MSDN 页面:https://msdn.microsoft.com/en-us/library/2c8f766e.aspx