VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
VC.STL Newsgroup Good Questions(三)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

VC.STL Newsgroup Good Questions()

         声明Container对象时有许多C 4786编译警告,Why?

Article last modified on 2002-5-29

----------------------------------------------------------------

The information in this article applies to:

-        Microsoft Visual C++, 32-bit Editions, version 6.0, SP5

----------------------------------------------------------------

 

Question:

下面的代码编译时报告了一大堆愚蠢的C4786编译警告,足有十四个:

f:\program files\microsoft visual studio\vc98\include\list(125) : warning C4786: '?$reverse_bidirectional_iterator@Viterator@?$list@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@AAV43@PAV43@H' : identifier was truncated to '255' characters in the browser information        E:\ \Exercise4\Exercise4.cpp(195) : see reference to class template instantiation 'std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >' being compiled

 

代码如下:
#include <list>

#include <string>

using namespace std;

list<string> myList;

void main()

{

}

 

再比如,map<string,int> myMap

 

Answer:

这个警告的意思就是说,list<string>的构造生成的Symbols太长了,超过了255个字符。

你其实不用理会这个警告,因为它只会影响到Debugger,而不会影响到真实的代码。实际上,如果你编译一个Release版本的话,就会发现这个警告已经完全消失了。

消除这个警告可能有一点难度,因为这属于预处理器的行为。

一般建议你这么做:

#pragma warning(disable : 4786)

#include <list>

#include <string>

 

注意这个pragma声明一定要放在stl头文件之前!否则不起作用!

 

这个pragma也不是总能够发生效力的!有时候,并不能消除所有的这种C4786警告。

详情参见:

http://support.microsoft.com/support/kb/articles/Q167/3/55.ASP

微软声称,将在Microsoft Visual C++ .NET中解决这个问题。

 

(To be Continued)

 

Written by [email protected]


相关文章

相关软件