From 95eaa2d7c3aae2edbfb920f437849dff8348cdf5 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Thu, 19 May 2022 22:20:50 +0300 Subject: [PATCH] Update shared_ptr move constructors to improve codegen --- include/boost/smart_ptr/shared_ptr.hpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/include/boost/smart_ptr/shared_ptr.hpp b/include/boost/smart_ptr/shared_ptr.hpp index 386ac09..2b7c062 100644 --- a/include/boost/smart_ptr/shared_ptr.hpp +++ b/include/boost/smart_ptr/shared_ptr.hpp @@ -667,9 +667,8 @@ public: #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - shared_ptr( shared_ptr && r ) BOOST_SP_NOEXCEPT : px( r.px ), pn() + shared_ptr( shared_ptr && r ) BOOST_SP_NOEXCEPT : px( r.px ), pn( static_cast< boost::detail::shared_count && >( r.pn ) ) { - pn.swap( r.pn ); r.px = 0; } @@ -683,11 +682,9 @@ public: shared_ptr( shared_ptr && r ) #endif - BOOST_SP_NOEXCEPT : px( r.px ), pn() + BOOST_SP_NOEXCEPT : px( r.px ), pn( static_cast< boost::detail::shared_count && >( r.pn ) ) { boost::detail::sp_assert_convertible< Y, T >(); - - pn.swap( r.pn ); r.px = 0; }