![]() |
1
1
这是一个实现细节,但你能对内部好友声明做些不好的事情吗:
使用_Tp1作为弱_ptr<>*,这将返回弱指针[实际上并不完全是因为_px是常量指针,所以需要额外的间接操作来丢失常量,或者如果你还是脏的,就把它扔掉!] 。将其全部封装在一个类中,然后从中派生,而不是从中启用共享:
现在,我们在c++14中实现了来自_this()的弱_。是的,这是一个讨厌的棍棒,但它只是直到你升级到17。 或者,抓住例外! 第三种选择——添加一个实例化模板包装器,在包装器中为enable_shared_from_this设置“constructed”,该包装器将shared_from_this()包装,以便在设置constructed标志之前失败。
当然,如果使用该类时没有立即分配给共享的_ptr,这是不完美的。 |
![]() |
2
0
如果
在开始
确保通过整个方法调用
或
|
![]() |
3
0
如果程序中的任何其他对象可以访问对象的原始
任何指向外部对象的指针都必须用
|