【发布时间】:2017-07-07 01:26:17
【问题描述】:
我尝试传递一个空指针作为对 lambda 函数的引用,但它会接收一个内存地址而不是保持为空。
function<void(json)> doTheThing(){
...
pointer = nullptr;
return [&](json object) {
if(pointer != nullptr) {
cout<<"pointer not null";
}
}
知道如何传递该指针以使其保持为空吗?
【问题讨论】:
-
pointer在哪里声明?是doTheThing()本地的吗? -
@NathanOliver,我相信 OP 将其称为
auto f = doTheThing(); f();在这种情况下pointer已经超出范围 -
@SingerOfTheFall 已经修改了评论。我们需要知道
pointer的声明位置。 -
是的,指针是在doTheThing()中声明的;
-
问题不在于您认为的位置。如果你知道问题在哪里,你就会解决它,所以你不会问这个问题,所以很明显,问题的存在正是因为你不知道问题在哪里。因此,请发布所有相关代码,而不仅仅是您认为问题所在的代码。