重新发明了COM 1995年之前就已经发明的做法…
【 在 ArchLinux () 的大作中提到: 】
: shared_ptr可以用shared_ptr<T>(T_ *rawptr)构造,但是由于它的引用信息是在shared_ptr对象里的,如果有两个shared_ptr用同一个裸指针构造,那么最后析构的时候,就会发生那个裸指针重复释放的错误。
: 我现在看的一个项目自己做了一个引用计数指针,它是做了一个RefCounted trait,它自己做引用计数,需要用引用计数指针的类需要继承RefCounted,于是用RefCountingPtr<T>(T_ *rawptr)构造的时候,rawptr指向的对象内部的计数器也可以自增,从而允许在不同的位置用同一个裸指针构造引用计数指针。我现在在程序里的一个位置只能拿到一个this指针,可以从它重新构造一个对应的引用计数指针。
--
FROM 138.19.103.*