这是一个问题:我正在努力,
Node* foo(Node *& ptr, other args) {
// some work here
}
在包装函数中,我必须声明一个临时值(没有意义):
Node* wrapper( ... ) {
Node* p = nullptr;
return foo(p, other args);
}
有没有办法摆脱包装函数中的第一行?谢谢!
答案 0 :(得分:1)
我想在foo
中您为ptr
分配了一些值(否则*&
没有值)。您无法传递nullptr
,您必须声明wrapper
中显示的指针,因为nullptr
是一个右值。右值是一个表达式,或者是一个“未命名的对象”,你不能获取它的地址。这里有更多信息Why don't rvalues have an address?。