这个是强制你move
unique_ptr<Data> my_data = ...
my_data->DoSomeWork();
// NowItsYourTurn(my_data); // compile error
NowItsYourTurn(std::move(my_data));
【 在 toutouqi (toutouqi) 的大作中提到: 】
: 标 题: Re: c++这种全手动的语言怎么就复杂了?
: 发信站: 水木社区 (Wed Dec 1 11:31:08 2021), 站内
:
: ProcessData(unique_ptr<Data>);
: 这个指针是调用者创建的,没move也会自动释放?如果是在调用处临时创建的对象指针,那还不如直接值传递吧。
: 【 在 here080 的大作中提到: 】
: : 你这是底层思维。
: : 这个需要用整体架构来解决。不同的架构决定了不同的时间释放。而新标准下有智能指针,应用程序不需要做具体的释放操作。正确的指针接口已经使得你自然使用就不会出错。
: : 比如:
: : ...................
: --
:
: ※ 来源:·水木社区
http://m.mysmth.net·[FROM: 223.104.44.*]
--
FROM 73.15.185.*