0

问题是:我正在尝试做,

Node* foo(Node *& ptr, other args) {
  // some work here
}

在包装函数中,我必须声明一个临时值(这是没有意义的):

Node* wrapper( ... ) {
  Node* p = nullptr;
  return foo(p, other args);
}

有没有办法摆脱包装函数中的第一行?谢谢!!

4

1 回答 1

1

我猜foo你分配ptr了一些价值(否则*&没有价值)。你不能通过nullptr,你必须像你在wrapper因为nullptr是右值中显示的那样声明一个指针。右值是一个表达式或“未命名对象”,您不能获取它的地址。这里有更多信息为什么右值没有地址?.

于 2013-09-24T06:22:40.150 回答