大家都知道可以用#pragma warning(disable:xxxx)的方法来去除warning,最常用的莫过于stl的两个4290/4786
但若是因为某些特殊需要,需要仅仅在局部disable,然后恢复要如何做呢?
这样就好,其实msdn上就有
// ============================================================================
// ==============================================================================
int main()
{
//~~~~~~~~~~~~~~~~~~~~~~~
int a = 1.0;
#pragma warning(disable : 4244)
int b = 1.0;
#pragma warning(default : 4244)
int c = 1.0;
//~~~~~~~~~~~~~~~~~~~~~~~
return 0;
}
P.S. 之所以去查这个,是发现vs2008的默认的/GS开关,和项目工程中的花指令产生冲突了,为了避免编译结果的难看warning,又不愿意在stdafx中全局禁掉这个warning,就采用了这个方法,可实现仅仅在部分函数中禁用这个warning
关于/GS(缓冲区安全检查)开关
http://msdn.microsoft.com/zh-cn/library/8dbf701c.aspx