c++ - NULL 不匹配模板参数?

标签 c++ c++11

我声明了一个模板类 threadBinaryTree 和一个函数

void threadBinaryTree<T>::inThread
     (threadBinaryTreeNode<T>*root,threadBinaryTreeNode<T>*& pre)

但符合错误:

no matching function for call to ‘threadBinaryTree<char>::inThread
      (threadBinaryTreeNode<char>*, NULL)’|

pre需要初始化为NULL,怎么办?

最佳答案

您的第二个参数采用对某种指针的非常量左值引用,但您传递的是右值 (NULL)。您不能将右值绑定(bind)到非常量左值引用。您需要传递一个左值:

threadBinaryTreeNode<T>* p = NULL;
x.inThread( somePtr, p );

关于c++ - NULL 不匹配模板参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343343/

相关文章:

c++ - "modifier is not allowed on a destructor"在VS2013中用nvcc编译时出错

c++ - 参数的重载函数(不可)在编译时推导

c++ - 比较 std::stringstream 的内容

c++ - 为什么我不能在 std::future 参数中使用引用

html - 我不明白一段代码中 C++ 和 HTML 之间的合并

c++ - 禁用编译器扩展 Xcode

c++ - 构建 32 位 OpenSSL FIPS (nmake f ms\ntdll.mak) : Illegal Character in macro

c++ - 如何在 Windows 上使用 GetSaveFileName 检测 "Save as type:"组合框何时更改?

c++ - clang 不喜欢 boost::signals2?

c++ - 如何检查类型是否由 typedef 定义或在模板参数中使用