在高级别的警告设置下编译
3.4.10 ID_warningDefault
编译器一般允许设定编译警告的级别,级别越高关注的问题就越多,也可以将警告设为错误,当有警告产生时停止编译,建议代码在高级别的警告设置下编译。
应避免代码中出现 #pragma warning(default:...) 等指令,这种指令将警告级别设为默认,可能与整个项目的设置不一致,如果一定要使用,应改用 #pragma warning(pop) 方式。
示例:
#pragma warning(disable:4706)
#include "somecode"
#pragma warning(default:4706) // Non-compliant
示例代码在导入某些代码之前将代号为 4706 的警告屏蔽,之后又将其设为默认级别,首先要关注 4706 是否应该被屏蔽,还要关注如果将其设为默认是否与整个项目的设置有冲突。
应改为:
#pragma warning(push)
#pragma warning(disable:4706)
#include "somecode"
#pragma warning(pop) // Compliant
改用这种方式之后不必再关注是否与整个项目的设置有冲突了。