diff --git a/include/boost/shared_ptr.hpp b/include/boost/shared_ptr.hpp index 1aa6ecc..4710b02 100644 --- a/include/boost/shared_ptr.hpp +++ b/include/boost/shared_ptr.hpp @@ -390,6 +390,18 @@ public: this_type( r, p ).swap( *this ); } + void reset( detail::shared_count const & c, T * p ) + { + this_type( c, p ).swap( *this ); + } + +#if defined( BOOST_HAS_RVALUE_REFS ) + void reset( detail::shared_count && c, T * p ) + { + this_type( static_cast< detail::shared_count && >( c ), p ).swap( *this ); + } +#endif + reference operator* () const // never throws { BOOST_ASSERT(px != 0);