效率肯定是要降低的,至于降低多少,会不会影响最终程序效果,要看你这个类用在什么地方,如果是高频高密集使用,你用shared_ptr和weak_ptr肯定是会影响最终效果的。
我觉得和你这个有可比性的是,google的protobuf,里面有很多set_allocated_xxx,之类的接口,google的也没有从代码级别保证一定不会访问失效地址,只是说大家要注意。
当然,这个和程序员的价格有关系。。。
【 在 fly2never 的大作中提到: 】
: 感谢详细回答.
: 确实如你所说. 如果我能100%确认不会失效, 那么用 A& 是最好的. 这样语义明确, 不用到处判空.
: 但是项目大了之后, 很多人写代码, 我在想要不要 强制一个团队规范, 就是不用在成员变量里面使用 raw pointer, 如果有, 就用weak_ptr来代替. 这样就100%保证了不会出问题, 但是代价是性能会降低.
: ...................
--
FROM 36.23.69.*