唯一的一个例外大概是UI程序了。
UI程序没办法,有时确实很难避免shared_ptr的存在。
【 在 here080 (hero080) 的大作中提到: 】
: 标 题: Re: 到底怎么传unique_ptr有定论了吗
: 发信站: 水木社区 (Sat Feb 29 15:40:59 2020), 站内
:
: 这个就靠API设计了。
: 一般大多数函数调用是阻塞式的,所以基本不用担心这个问题。
: 异步调用代码就是得非常小心。
:
: 如果你真的有完全各行其事的“野线程”,那说不得只能用shared_ptr了。
: 然后从设计上讲,野线程就算不考虑对象的有效性问题,单纯让不同线程的逻辑互相配合不出错已经是非常难的事了。
: 武断的讲,99%的情况下这种都是不良设计。
:
: 比较好的异步程序设计是类似轻量级coroutine/fiber的方式。
: 【 在 popeye315 (MATLAB) 的大作中提到: 】
: : 标 题: Re: 到底怎么传unique_ptr有定论了吗
: : 发信站: 水木社区 (Sat Feb 29 15:31:21 2020), 站内
: :
: : 你说的有点道理。不过对于所有权不转移的情况,如果传裸指针出去,使用指针的人很难保证指针的有效性,不知道指针指向的资源什么时候会被释放,使用的时候就可能带来风险。
: :
: : 【 在 here080 的大作中提到: 】
: : :
: : : 传裸指针不可以时才用shared_ptr
: : : 大多数情况下其实不需要用shared_ptr
: : :
: : : 核心就是需要区分“所有权”。
: :
: : #发自zSMTH@PAR-AL00
: : --
: :
: : ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 116.231.242.*]
:
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 76.126.252.*]
--
FROM 76.126.252.*