shared_ptr不能保证100%不出问题。
而且容易产生循环引用对象无法释放这种超级难找的bug
【 在 fly2never (逆飞的鱼) 的大作中提到: 】
: 标 题: Re: 这种情况下我该不该把unique_ptr改成shared_ptr?
: 发信站: 水木社区 (Mon Jul 26 11:25:19 2021), 站内
:
: 感谢详细回答.
: 确实如你所说. 如果我能100%确认不会失效, 那么用 A& 是最好的. 这样语义明确, 不用到处判空.
:
: 但是项目大了之后, 很多人写代码, 我在想要不要 强制一个团队规范, 就是不用在成员变量里面使用 raw pointer, 如果有, 就用weak_ptr来代替. 这样就100%保证了不会出问题, 但是代价是性能会降低.
:
: 如果让大家自己判断是否会danging,而使用A&的话, 就有风险. 团队技术人员能力有高有低, 就有隐患
: 【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: : 如果要一定保证不失效,就只有使用shared_ptr或者weak_ptr
: : 楼主的问题是不是要牺牲效率而从代码级别保证访问callback不会出问题
: : 如果callback有可能会在B的生存期内失效,那就不需要讨论,直接上weak_ptr
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 218.200.160.*]
--
FROM 76.126.252.*