局部disable warning

大家都知道可以用#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


你可能感兴趣的:(局部disable warning)