这是错误的方式。事实上大项目里滥用shared_ptr只会造成更多的问题。
你可以使用一些编译工具和测试工具来减少可能出现的dangling问题。
出于代码安全考虑,我建议你学习google style
这可以有效的排除掉绝大部分坑。
当然了,提高programmer和reviewer的素质是必须的。
【 在 fly2never (逆飞的鱼) 的大作中提到: 】
: 标 题: Re: 这种情况下我该不该把unique_ptr改成shared_ptr?
: 发信站: 水木社区 (Mon Jul 26 11:27:28 2021), 站内
:
: 你说的是对的.
:
: 问题在于一个上百万行的repo里面, 每天很多pr, 可能reviewer没有精力去仔细看每一个地方是否可能danging,出于代码安全性考虑, 我在想要不要全部禁止成员变量持有raw pointer, 虽然不合理, 但是省心. 见我前几条回复有说明
:
: 【 在 here080 (hero080) 的大作中提到: 】
: : 这个靠的是程序逻辑来控制。
: : 你的这个A和B,就是应该使用unique_ptr和裸指针。用shared_ptr和weak_ptr属于典型的滥用。
: : 你还没说清楚为什么你这个会有dangling?如果B指向的A拥有这个B,根本就没有dangling的可能啊?
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 218.200.160.*]
--
FROM 76.126.252.*