5,530
社区成员
发帖
与我相关
我的任务
分享
class RefCounted
{
public:
RefCounted()
: count(0)
{
}
virtual ~RefCounted()
{
}
void ref()
{
count++;
}
void unref()
{
count--;
if (count == 0) delete this;
}
size_t get_ref_count()
{
return count;
}
protected:
size_t count;
};
inline void intrusive_ptr_add_ref(RefCounted* self)
{
self->ref();
}
inline void intrusive_ptr_release(RefCounted* self)
{
self->unref();
}