c++ - 我自己的 copy() 函数与 std::copy() 冲突

标签 c++

我有一个头文件。在这个标题中,我想为一个类使用一个 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/

相关文章:

c++ - 为什么语句不能出现在命名空间范围内?

c++ - 跨平台双向IPC

c++ - 字符串与c++的比较

C++ 通过指针访问私有(private)函数

c++ - 使用 gcc/g++/gdb/valgrind 调试时的魔数(Magic Number)?

C++使用迭代器将函数映射到可迭代对象上

c++ - 从 URL 下载 Qt 中的文件

c++ - 检查共面 3D 点时出现浮点错误

c++ - 在使用不同的 visual studio 编译器版本编译的进程中加载​​ COM

c++ - 为什么我们不能释放由 new 分配的内存?