首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我自己的copy()函数与std::copy()冲突

我自己的copy()函数与std::copy()冲突
EN

Stack Overflow用户
提问于 2012-03-23 01:42:34
回答 3查看 128关注 0票数 0

我有一个头文件。在这个头文件中,我想使用一个类的映射。但是在我包含之后,我得到了一个拷贝,因为我在项目(非常大的项目)中有一个no matching function error ()函数。我在这个网站的http://www.sgi.com/tech/stl/download.html上看到地图包含一个using std::copy,所以我猜它会与之冲突。

我不能对复制函数进行任何更改,所以有没有办法在这个头文件中使用map?(没有其他地方)。有没有办法让我的复制功能不会冲突?

我在Windows7上使用Visual Studio 2008。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-23 01:50:29

错误消息表明您的函数对翻译单元不可见,因此请确保包含标头。

另外,我怀疑<map>有没有像using std::copy这样的东西。你确定是这个吗?

algobase.h (非标准C++)中,只有在定义了__STL_USE_NAMESPACES的情况下才会解析using指令。您应该在包含头部之前取消定义它:

代码语言:javascript
复制
#undef __STL_USE_NAMESPACES
#include "algobase.h"
#endif
票数 1
EN

Stack Overflow用户

发布于 2012-03-23 01:57:35

您应该能够包装包含在名称空间中的映射。

代码语言:javascript
复制
    namespace StopCollision
    { #include <map> }

然后,地图复制功能将通过StopCollision::std::copy可用。这是非常粗糙的,但可以解决您的问题。

票数 1
EN

Stack Overflow用户

发布于 2012-03-23 01:56:24

据我所知,map stl类没有复制功能。这可能是一个包含问题,您可以尝试使用包含映射和复制函数的类的forward reference

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

https://stackoverflow.com/questions/9827645

复制
相关文章

相似问题

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