我喜欢 Boost 的 smart_ptr 功能以及与 and 相互转换的能力shared_ptr
,weak_ptr
但是由于引用计数不包含在指向的类本身中,因此以下代码不起作用(而且它不应该)。
A *a = new A;
shared_ptr<A> aPtr1(a);
{
shared_ptr<A> aPtr2(a);
// The reference counts of aPtr1 and aPtr2 are both 1.
} // At this point, `a` is destructed by aPtr2.
aPtr1->foo(); // And... SIGTERM
我相信JUCE框架有这个功能。[ReferenceCountedObject
和ReferenceCountedObjectPtr
] 但是,我宁愿在我的应用程序中使用 Boost。是否可以允许 Boost smart_ptrs 在指向的类而不是私有boost::detail::shared_count
实例中查找引用计数?