没有使用两种类型的字符串进行匹配的函数调用
no matching function call with two types of strings
我的驱动程序正在调用一个带有remove函数的find函数,如下所示:
remove(find(p, string("Hog")));
我的查找功能是:
Node <T> * find(Node <T> * & pHead, T & e)
我的删除功能是:
Node <T> * remove(const Node <T> * pRemove)
错误是说:之间没有匹配的函数调用
find(Node>*&,std::__cxx11::string((驱动程序调用的内容(
和
find(节点*&,T&([带有T=std::__cxx11::basic_string](我的find函数正在使用(
我能看到的唯一区别是驱动程序使用的字符串数据:std::__cxx11::string
而我的只有CCD_ 2。
我不知道这两者之间的区别是什么。有什么想法可以让这个函数调用匹配吗?
您不能将临时对象绑定到引用,因为通常临时对象会立即死亡,而对它的引用会挂起。在通话中,它一直存活到我回来。您可以通过将功能更改为:来解决问题
Node <T> * find(Node <T> * & pHead, const T & e)
^^^^^
const &
延长了临时的使用寿命,直到函数返回。
另一种解决方案是不使用临时的:
string s("Hog")
remove(find(p, s));
相关文章:
- 没有使用两种类型的字符串进行匹配的函数调用
- C++何时调用字符串析构函数
- 没有用于调用错误的匹配函数.将字符串推送到向量中
- varargs宏以执行函数调用或将其转换为字符串
- 从头文件调用字符串getter函数
- MQL4 C++Dll在函数调用中更改字符串参数
- 将std ::字符串转换为const char *和函数调用
- C++加速解析大字符串的多个子()或等效函数调用
- 函数调用的参数太多,预期为 0,有 1。 "InfInt.h"字符串函数
- 使用函数调用初始化字符串成员c++
- C++从函数调用的多个返回中构建字符串向量的最佳方法
- C++函数未正确返回:正在调用字符串析构函数
- 在函数调用的上下文中使用Char指针、Char数组和字符串
- 通过对类对象的函数调用返回字符串值
- 初始化字符串指针数组,并通过函数调用将其打印出来
- 如果函数调用导致引用传递,为什么要将共享指针用于字符串?
- 从c#调用的c++ dll导出函数返回字符串
- c++ Lambda——在接下来的函数调用中不工作的字符串参数
- 堆还是栈?在c++中函数调用中引用常量字符串时
- 函数调用中的变量名到字符串,c++