A C++ smart pointer including auto_ptr and shared_ptr and difference from Boost

A C++ smart pointer including auto_ptr and shared_ptr and difference from Boost