我有一个头文件。在这个标题中,我想为一个类使用一个 map 。但是在我包含之后,我得到了一个没有匹配的函数错误
,因为我在项目中有一个 copy() 函数(非常大的项目)。我在这个网站上看到http://www.sgi.com/tech/stl/download.html该 map 包含一个 using std::copy 所以我猜它与那个冲突。
我无法对复制功能进行任何更改,那么有没有办法在这个头文件中使用映射? (没有其他地方)。有没有办法让我的复制功能不发生冲突?
我在 Windows 7 上使用 Visual Studio 2008。
最佳答案
错误消息表明您的函数对翻译单元不可见,因此请确保包含标题。
另外,我怀疑<map>
有类似 using std::copy
的东西.你确定这个吗?
在algobase.h
(这不是标准的 C++),using
仅当 __STL_USE_NAMESPACES
时才解析指令被定义为。您应该在包含 header 之前取消定义它:
#undef __STL_USE_NAMESPACES
#include "algobase.h"
#endif
关于c++ - 我自己的 copy() 函数与 std::copy() 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9827645/