我自己的copy()函数与std::copy()发生冲突
My own copy() function collides with std::copy()
我有一个头文件。在这个标题中,我想使用一个类的映射。但在我包含之后,我得到了一个no matching function error
,因为我在项目中有一个copy()函数(真的是一个大项目)。我在这个网站上看到http://www.sgi.com/tech/stl/download.html该地图包含一个使用std::副本,所以我想它与之冲突了。
我无法对复制功能进行任何更改,所以有没有办法在这个头文件中使用映射?(没有其他地方)。有没有办法让我的复制函数不冲突?
我在Windows7上使用Visual Studio 2008。
错误消息表明您的函数对翻译单元不可见,因此请确保包含标头。
此外,我怀疑<map>
是否与using std::copy
类似。你确定这个吗?
在algobase.h
(不是标准C++)中,只有定义了__STL_USE_NAMESPACES
,才会解析using
指令。你应该在包括标题之前取消定义:
#undef __STL_USE_NAMESPACES
#include "algobase.h"
#endif
您应该能够将映射封装在命名空间中,即
namespace StopCollision
{ #include <map> }
然后,地图复制功能将通过StopCollision::std::copy
可用。这很粗糙,但可以解决你的问题。
据我所知,map stl类没有复制函数。这可能是一个include问题,您可以尝试使用对包含map和copy函数的类的正向引用。
相关文章:
- 写入位置0x0000000C时发生访问冲突
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- std::filesystem::copy throws filesystem_error
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- 如何使 std::sort 在 std::swap 和我的命名空间的模板化交换之间没有名称冲突?
- C++尝试深度复制唯一指针时出现内存访问冲突
- 错误:使用通用引用的声明冲突
- 如何解决GTest和LibTorch联动冲突
- 两个运营商的一些奇怪的冲突<<
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- C++17 十六进制浮点文字单精度后缀冲突?
- 结构字段名称与 GDB 中的 STL 数组冲突
- 我自己的copy()函数与std::copy()发生冲突