如何在VS2013社区中禁用警告C4927

时间:2015-03-24 04:54:30

标签: c++ c++11 warnings

我在项目中收到以下警告:

warning C4927: illegal conversion; more than one user-defined conversion has been implicitly applied while calling the constructor 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(const _Elem *)'
      with
      [
          _Elem=char
      ]
      C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xstring(778) : see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string'

我明白为什么会发生这种情况,我无法抑制它。我已尝试将其添加到项目设置中的“禁用特定警告”列表中,并且我还将警告级别设置为“关闭所有警告”(/ W0),但警告仍然存在。有没有人有关于如何隐藏消息的任何建议?

1 个答案:

答案 0 :(得分:0)

您可以使用#pragma warninghttps://msdn.microsoft.com/en-us/library/2c8f766e.aspx)直接在代码中控制Visual Studio警告。如果您想使单行警告静音,可以将以下内容放在行前面:

#pragma warning (suppress: 4927)
line-that-causes-warning-4927

您也可以使用“禁用”代替“抑制”,从#pragma之后的任何位置禁用它。但是,正如评论所示,实际修复警告更好,因为它可能会导致程序出现问题。