小编Mat*_*toy的帖子

为什么在单独的行上调用函数会改变 C++ 中的结果?

似乎由于某种原因,当我尝试在同一行调用两个函数时,第一个函数从“.get()”接收 nullptr 作为第一个参数

getSomePtr(someUniquePtr.get(), someArray)->moveUniquePtr(std::move(someUniquePtr));
Run Code Online (Sandbox Code Playgroud)

但是,当将这些函数分成两行时,一切似乎都有效:

auto* somePtr = getSomePtr(someUniquePtr.get(), someArray);
somePtr->moveUniquePtr(std::move(someUniquePtr));
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况?

c++ smart-pointers

1
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

smart-pointers ×1