diff --git a/include/boost/smart_ptr/intrusive_ptr.hpp b/include/boost/smart_ptr/intrusive_ptr.hpp index 58041da..ba3f30b 100644 --- a/include/boost/smart_ptr/intrusive_ptr.hpp +++ b/include/boost/smart_ptr/intrusive_ptr.hpp @@ -122,6 +122,20 @@ public: return *this; } +#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES) + template friend class intrusive_ptr; + template +#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) + intrusive_ptr(intrusive_ptr && rhs, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty()) +#else + intrusive_ptr(intrusive_ptr && rhs) +#endif + : px( rhs.px ) + { + rhs.px = 0; + } +#endif + #endif intrusive_ptr & operator=(intrusive_ptr const & rhs)