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()"