#pragma warning(disable 4786) 屏蔽标识符过长导致的warning;
代码实现:在.H .CPP文件开头写上:#pragma warning(disable:4996)
1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。
2. #pragma warning(push) 存储当前报警设置。
#pragma warning(push, n) 存储当前报警设置,并设置报警级别为n。n为从1到4的自然数。
3. #pragma warning(pop) 恢复之前压入堆栈的报警设置。在一对push和pop之间作的任何报警相关设置都将失效。
4. #pragma warning(disable: n)将某个警报置为失效
5. #pragma warning(default: n)将报警置为默认
6. 某些警告如C4309是从上到下生效的。即文件内#pragma warning从上到下遍历,依次生效。
-----------------------------------------------
开发人员可以使用 #pragma 指令将警告作为错误处理;还可以启用或禁用警告,如下面的示例所示:
1.将一个warning作为一个错误
#pragma warning (error: 6260)
2.将一个warning禁用掉
#pragma warning (disable: 6011)
3.将一个被禁用的warning启用
#pragma warning (enable: 6011)
#pragma warning(disable: 4018) // signed/unsigned mismatch有无符号之间的赋值
#pragma warning(disable: 4100) // unreferenced formal parameter无用参数
#pragma warning(disable: 4245) // conversion from ’type1’ to ’type2’, 强制转换signed/unsigned mismatch
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template ’vector’
#pragma warning(disable: 4702) // unreachable code
#pragma warning(disable: 4710) // ’function’ : function not inlined
#pragma warning(disable: 4786) // identifier was truncated to ’number’ characters in the debug information