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

C++编程时,在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就很长了。

当命名超过C++规定范围255字符时,就会产生这个名为disabale 4786的warning。

故为了屏蔽该warning,在各模板类的引用声明(如#include )之前,使用这个#pragma warning(disable 4786)。

时间: 2024-09-30 00:20:37

C++写#pragma warning(disable 4786)的作用的相关文章

#pragma warning(disable 4786)

此warning产生的原因是因为标识符过长,超过了最大限定255个字类名超过了255个字,使用时就会报4786的waring.在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就超长了.解决方法有两种,一种是直接定义别名: #ifdef _DEBUG #define VeryLongClassNameA A #define VeryLongClassNameB B #endif 另一种是屏蔽4786warning: #pragm

#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 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 once与#ifndef的作用有什么区别

#pragma once 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 #pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义. #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了. #ifndef,#define,#endif这个是C++语言相关,这是C++语言中的宏定义,通过宏

IOS笔记 #pragma mark的用法和作用(方便查找和导航代码)

简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick{ //... } OK,那么如何查找呢,点击代码编辑器上面的导航栏即可: 接着我修改一下代码: #pragma mark - 播放节拍器 猛一看没发现区别是吧?实际上多了一个横线 #pragma mark “-” 播放节拍器 这个短横线(减号)有什么作用呢,再次点击导航栏就可以看到. 加上-后会显示一条分割线会

自己动手写把”锁”之---锁的作用

前序 这是一个系列文章,前边几篇比较基础,主要为了后续做准备.熟悉的朋友可以直接跳过看后续的文章. 本主题很重要,学完这个系列,你将会对Java并包有一个透彻的原理性的认识.线程池技术.阻塞队列.信号量.原子性操作等等所用的基础技术都会在这系列的文章中讲到.学完之后,大家可以自己实现一个CountDownLatch来练练手. 正文 都知道,现在处理器的核数越来越多,为充分利用其计算资源,服务端编程通常会用上多线程技术.利用多线程技术可以同时进行计算任务,从而提高的服务的并发度. 但是,当多线程对

pragma comment

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