Apparently, many people dislike that the standard std::enable_shared_from_this class does not allow to invoke shared_from_this() in the constructor.
Guess What: This library is supposed to fill the gap.
The boost library does that too, but it does not allow shared_ptrs to be made inside the destructor and it doesn't provide a release() method to gain ownership of the contained pointer.
Big downside is however, that it's not (yet) made thread-safe.