람다 함수에 대한 참조로 널 포인터를 전달하려고 시도하지만 널 대신에 메모리 주소를 수신합니다.람다 함수에 전달 된 널 포인터가 더 이상 null이 아닙니다.
function<void(json)> doTheThing(){
...
pointer = nullptr;
return [&](json object) {
if(pointer != nullptr) {
cout<<"pointer not null";
}
}
포인터가 null이되도록 전달하는 방법을 알려주세요.
'포인터'는 어디에 선언되어 있습니까? doTheThing()에 국부적입니까? – NathanOliver
@ NathanOliver, OP가 'auto f = doTheThing(); f();'이 경우 포인터가 모두 범위를 벗어났습니다. – SingerOfTheFall
@SingerOfTheFall 이미 주석을 수정했습니다. 우리는'pointer'가 선언 된 곳을 알아야합니다. – NathanOliver