Below are revisions for this snippet.

Template function to create a boost::shared_ptr





Syndication

Revision Revison 1
template function to create a boost::shared_ptr in the form

boost::shared_ptr classPtr = new_ptr(Arg1, Arg2);

You can also make new_ptr_access a friend of className and make the constructor and destructor private.

This keeps the end user from:

Creating an instance manually on the heap
Creating an instance manually on the stack
Deleting a shared_ptr manually using "delete get()"