This post explains what an intrusive pointer in boost is. As far as I can see, an intrusive pointer is essentially the same as a shared pointer except the user must provide an interface for the reference counter by defining intrusive_ptr_add_ref
and intrusive_ptr_release
functions.
Why would I want to manage reference count myself? What is the benefit of such approach?