#pragma warning(disable 4786)

此warning产生的原因是因为标识符过长,超过了最大限定255个字
类名超过了255个字,使用时就会报4786的waring。在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就超长了。
解决方法有两种,一种是直接定义别名:
  #ifdef _DEBUG
  #define VeryLongClassNameA A
  #define VeryLongClassNameB B
  #endif
  另一种是屏蔽4786warning:
  #pragma warning(disable : 4786)
  注意屏蔽语句必须放在报错的模板类的引用声明(如#include )之前,否则还是不起作用。
摘自:http://www.examda.com/ncre2/cpp/fudao/20081031/093029983.html

时间: 2024-08-28 16:26:59

#pragma warning(disable 4786)的相关文章

C++写#pragma warning(disable 4786)的作用

C++编程时,在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就很长了. 当命名超过C++规定范围255字符时,就会产生这个名为disabale 4786的warning. 故为了屏蔽该warning,在各模板类的引用声明(如#include )之前,使用这个#pragma warning(disable 4786).

#pragma warning (default : n)

参考链接:http://www.cnblogs.com/JCSU/articles/1996483.html 在VC2013中编译以下win32 C++ 控制台程序,会产生2个告警warnings #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]){    int x, y, z;    y = x;    //return 0;} 警告    1    warning C4101: “z”: 未引用的局部变量 错误    

pragma warning[转]

1  常用去警告: #pragma warning(disable:4035) //no return value         #pragma warning(disable:4068) // unknown pragma         #pragma warning(disable:4201) //nonstandard extension used : nameless struct/union         #pragma warning(disable:4267)        

关于#pragma warning 用法的研究

在阅读项目代码时,对于 #pragma warning(disable : 4251) 这个语句不是很理解,现在有时间查阅了一些资料整理如下,以备以后查找使用,也给对此有疑问提的朋友一个参考:如果有不当之处,欢迎指正: 该指令允许有选择性的修改编译器的警告消息的行为 指令格式如下: #pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] #pra

#pragma warning

#pragma warning ...    一般放在头文件的最开始位置. 1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效.当该文件编译结束,设置也就失去作用. 2. #pragma warning(push) 存储当前报警设置.#pragma warning(push, n) 存储当前报警设置,并设置报警级别为n.n为从1到4的自然数. 3. #pragma warning(pop) 恢复之前压入堆栈的报警设置.该句

pragma comment

pragma指令简介 在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数. message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的.其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来. 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可

pragma指令简介 [转]

在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数. message 它能够在编译信息输出窗  口中输出相应的信息,这对于源代码信息的控制是非常重要的.其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来.  当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确

#pragma编译指令

#pragma alignment#pragma anon_struct#pragma argsused#pragma checkoption#pragma codeseg#pragma comment#pragma defineonoption#pragma exit#pragma hdrfile#pragma hdrstop#pragma inline#pragma intrinsic#pragma link#pragma message#pragma nopushoptwarn #prag

[转载] #pragma的一些使用

#define chSTR2(x)    #x  这个是串化 , chSTR2( 1 + 1 == 2 ) 替换成 "1 + 1 == 2 " 其他的都是 M$ 的扩展, 不需要搞明白.. #pragma warning(push, 3)  // 3 级警告设置入栈 #pragma warning(pop)      // 警告设置出栈 #pragma warning(push, 4)  // 4 级警告设置入栈 #pragma message("????")