learn and test boost::scoped_ptr