我有一个使用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->禁用特定警告来禁用警告4623时,我看到了同样的问题。如果我将警告级别更改为3(/ W3)或更高,则会发生同样的事情。
为什么Visual Studio会对自己的代码发出警告,为什么我无法禁用它?
答案 0 :(得分:3)
感谢@ Drop的上述建议,我在“禁用特定警告”字段中输入4623后检查了编译器设置中显示的内容。我很惊讶地看到/wd"4623"
。当我删除此项后,在“其他选项”字段中添加了/wd4623
,警告就消失了。
这似乎是Visual Studio 2015中的一个错误,但我找不到任何引用。
更新:该错误仍然存在于Visual Studio 2015 Update 3中,因此我已将其报告给Microsoft,他们可以重新创建它。
答案 1 :(得分:-1)
在公共头文件中使用#pragma
。
例如,在标题文件中添加以下行。
// To disable warning messages 4456 and 4457.
#pragma warning( disable : 4456 4457 )
请参阅MSDN页面:str.contains