首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VS2008 -> VS2010导致隐蔽的STL错误

VS2008 -> VS2010导致隐蔽的STL错误
EN

Stack Overflow用户
提问于 2010-06-02 23:39:31
回答 2查看 10.5K关注 0票数 18

已在VS2008中成功编译以下C++库

http://sourceforge.net/projects/xmlrpcc4win/files/xmlrpcc4win/XmlRpcC4Win1.0.8.zip/download

当我在VS2010中打开它时,它通过了转换向导过程,没有任何错误。

现在,当我尝试用VS2010编译它时,我得到了一些奇怪的STL错误,就像这样:

代码语言:javascript
复制
1>TimXmlRpc.cpp(1018): error C2039: 'back_insert_iterator' : is not a member of 'std'
1>TimXmlRpc.cpp(1018): error C2065: 'back_insert_iterator' : undeclared identifier
1>TimXmlRpc.cpp(1018): error C2275: 'XmlRpcValue::BinaryData' : illegal use of this type as an expression
1>TimXmlRpc.cpp(1018): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1018): error C2039: 'back_inserter' : is not a member of 'std'
1>TimXmlRpc.cpp(1018): error C3861: 'back_inserter': identifier not found
1>TimXmlRpc.cpp(1019): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2039: 'back_insert_iterator' : is not a member of 'std'
1>TimXmlRpc.cpp(1031): error C2065: 'back_insert_iterator' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2275: 'std::vector<_Ty>' : illegal use of this type as an expression
1>          with
1>          [
1>              _Ty=char
1>          ]
1>TimXmlRpc.cpp(1031): error C2065: 'ins' : undeclared identifier
1>TimXmlRpc.cpp(1031): error C2039: 'back_inserter' : is not a member of 'std'
1>TimXmlRpc.cpp(1031): error C3861: 'back_inserter': identifier not found
1>TimXmlRpc.cpp(1032): error C2065: 'ins' : undeclared identifier

我不确定其中的一些是什么。例如,back_insert_iterator实际上是std的成员,但VS似乎不认为它是。

我如何修复像这样的错误?它们似乎没有太多意义,所以我不确定从哪里开始。也许这是我的项目设置中的一些东西?

例如,下面的1018行给出了std错误:

代码语言:javascript
复制
std::back_insert_iterator<BinaryData> ins = std::back_inserter(*(u.asBinary));

如果有人能给我指点方向,我将不胜感激。对于C++来说,我还是个新手,所以我很难弄明白这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-02 23:51:02

您可能在某些文件中忘记了#include <iterator>。这是像back_insert_iterator这样的东西被声明的地方。

在过去,您可以忘记这个头文件,因为许多其他标准的头文件也包含它。VS2010重新组织了头文件,使其库实现更符合标准。因此,它对丢失的头文件的容错要少得多,而<iterator>是一个经常被忽视的头文件。

票数 31
EN

Stack Overflow用户

发布于 2011-10-12 00:10:12

来自MSDN:

许多其他头文件不再自动包含头文件。相反,如果需要支持标头中定义独立迭代器,则应显式包含标头。

http://msdn.microsoft.com/en-us/library/bb531344.aspx

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2959234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档