Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSVC-标题中的停止警告_C++_Visual C++_Warnings - Fatal编程技术网

C++ MSVC-标题中的停止警告

C++ MSVC-标题中的停止警告,c++,visual-c++,warnings,C++,Visual C++,Warnings,我正在使用MSVC和CMAKE项目。因此,我在MSVC上启用了许多为gcc和clang启用的标志。然而,墙的警告级别让我有些痛苦;它警告我包含的头文件中的所有内容,比如stdio.h和boost头文件。有没有办法阻止MSVC在标题中警告我?我喜欢我的警告级别,但我只希望为我启用它们。/Wall非常迂腐/W4可能是您真正需要的。要回答您的问题,您可以使用以下选项禁用标题周围的特定警告: #pragma warning(disable:xxxx) #include <yourheader.

我正在使用MSVC和CMAKE项目。因此,我在MSVC上启用了许多为gcc和clang启用的标志。然而,墙的警告级别让我有些痛苦;它警告我包含的头文件中的所有内容,比如stdio.h和boost头文件。有没有办法阻止MSVC在标题中警告我?我喜欢我的警告级别,但我只希望为我启用它们。

/Wall
非常迂腐<代码>/W4可能是您真正需要的。要回答您的问题,您可以使用以下选项禁用标题周围的特定警告:

 #pragma warning(disable:xxxx)
 #include <yourheader.h>
 #pragma warning(default:xxxx)
#杂注警告(禁用:xxxx)
#包括
#杂注警告(默认值:xxxx)
或使用以下命令更改警告级别:

 #pragma warning(push,3)
 #include <yourheader.h>
 #pragma warning(pop)
#pragma警告(推送,3)
#包括
#布拉格警告(pop)

参见MSDN文档:

马克·托洛宁已经指出了
/W4

如果这仍然会产生警告,例如,您使用的是旧的MSVC版本,如7.1,或者您使用的某些第三方库仍然会产生关于完美代码的警告,并且您的目标是干净的编译,那么请参阅我的标题


这是经过几次社区审查,在COMP.L.C++USENET组中,但它可能需要更新,因为微软在新的编译器版本中添加了更多愚蠢的警告……-)p> 您可以使用

/wdXXXX
标志禁用特定警告,其中
XXXX
是您希望忽略的警告数。不需要修改代码。

所以没有办法告诉MSVC不要在我无法控制的标题中发出警告?(即所有标题都包含在尖括号中,而不是双引号中)不,没有。此外,对于某些模板,您不仅需要禁用标题周围的警告,还需要禁用实例化它们的位置(但这可能只是旧版本的问题…我不太确定,sry)。使用预编译头时要格外小心:你也需要禁用那里的所有内容。我特别喜欢VC++10中的新警告“警告:数组的元素将默认初始化”,好像有什么问题:/vote for的可能重复