$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r55210 - sandbox/fmhess/boost/generic_ptr
From: fmhess_at_[hidden]
Date: 2009-07-30 14:43:34
Author: fmhess
Date: 2009-07-27 16:37:57 EDT (Mon, 27 Jul 2009)
New Revision: 55210
URL: http://svn.boost.org/trac/boost/changeset/55210
Log:
Use boost::swap, and add explicit std::move() call
when moving wrapped generic pointers.
Text files modified: 
   sandbox/fmhess/boost/generic_ptr/shared.hpp |     8 ++++----                                
   sandbox/fmhess/boost/generic_ptr/weak.hpp   |     5 +++--                                   
   2 files changed, 7 insertions(+), 6 deletions(-)
Modified: sandbox/fmhess/boost/generic_ptr/shared.hpp
==============================================================================
--- sandbox/fmhess/boost/generic_ptr/shared.hpp	(original)
+++ sandbox/fmhess/boost/generic_ptr/shared.hpp	2009-07-27 16:37:57 EDT (Mon, 27 Jul 2009)
@@ -48,13 +48,13 @@
 #include <boost/smart_ptr/detail/sp_convertible.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/utility/enable_if.hpp>
+#include <boost/utility/swap.hpp>
 
 #if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
 #include <boost/smart_ptr/detail/spinlock_pool.hpp>
 #include <boost/memory_order.hpp>
 #endif
 
-#include <algorithm>            // for std::swap
 #include <functional>           // for std::less
 #include <typeinfo>             // for std::bad_cast
 
@@ -332,7 +332,7 @@
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
 
-    shared( shared && r ): px( r.px ), pn() // never throws
+    shared( shared && r ): px( std::move(r.px) ), pn() // never throws
     {
         pn.swap( r.pn );
         detail::set_plain_old_pointer_to_null(r.px);
@@ -348,7 +348,7 @@
     shared( shared<Y> && r )
 
 #endif
-    : px( r.px ), pn() // never throws
+    : px( std::move(r.px) ), pn() // never throws
     {
         pn.swap( r.pn );
         detail::set_plain_old_pointer_to_null(r.px);
@@ -426,7 +426,7 @@
 
     void swap(shared<T> & other) // never throws
     {
-        std::swap(px, other.px);
+        boost::swap(px, other.px);
         pn.swap(other.pn);
     }
 
Modified: sandbox/fmhess/boost/generic_ptr/weak.hpp
==============================================================================
--- sandbox/fmhess/boost/generic_ptr/weak.hpp	(original)
+++ sandbox/fmhess/boost/generic_ptr/weak.hpp	2009-07-27 16:37:57 EDT (Mon, 27 Jul 2009)
@@ -17,6 +17,7 @@
 #include <memory> // boost.TR1 include order fix
 #include <boost/smart_ptr/detail/shared_count.hpp>
 #include <boost/generic_ptr/shared.hpp>
+#include <boost/utility/swap.hpp>
 
 #ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash
 # pragma warning(push)
@@ -97,7 +98,7 @@
     }
 
     // for better efficiency in the T == Y case
-    weak( weak && r ): px( r.px ), pn(std::move(r.pn)) // never throws
+    weak( weak && r ): px( std::move(r.px) ), pn(std::move(r.pn)) // never throws
     {
         detail::set_plain_old_pointer_to_null(r.px);
     }
@@ -184,7 +185,7 @@
 
     void swap(this_type & other) // never throws
     {
-        std::swap(px, other.px);
+        boost::swap(px, other.px);
         pn.swap(other.pn);
     }