Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85410 - in trunk: boost/move libs/move/test
From: igaztanaga_at_[hidden]
Date: 2013-08-20 14:10:09


Author: igaztanaga
Date: 2013-08-20 14:10:09 EDT (Tue, 20 Aug 2013)
New Revision: 85410
URL: http://svn.boost.org/trac/boost/changeset/85410

Log:
Fix has_nothrow_move and avoid boost::has_nothrow_move<copyable>::value test as each compiler can deduce a different thing depending on its type analysis.

Text files modified:
   trunk/boost/move/traits.hpp | 4 ++--
   trunk/libs/move/test/move.cpp | 1 -
   2 files changed, 2 insertions(+), 3 deletions(-)

Modified: trunk/boost/move/traits.hpp
==============================================================================
--- trunk/boost/move/traits.hpp Tue Aug 20 13:22:58 2013 (r85409)
+++ trunk/boost/move/traits.hpp 2013-08-20 14:10:09 EDT (Tue, 20 Aug 2013) (r85410)
@@ -41,14 +41,14 @@
 {};
 
 //! By default this traits returns
-//! <pre>boost::is_nothrow_move_constructible<T>::value || boost::is_nothrow_move_assignable<T>::value </pre>.
+//! <pre>boost::is_nothrow_move_constructible<T>::value && boost::is_nothrow_move_assignable<T>::value </pre>.
 //! Classes with non-throwing move constructor
 //! and assignment can specialize this trait to obtain some performance improvements.
 template <class T>
 struct has_nothrow_move
    : public ::boost::move_detail::integral_constant
       < bool
- , boost::is_nothrow_move_constructible<T>::value ||
+ , boost::is_nothrow_move_constructible<T>::value &&
         boost::is_nothrow_move_assignable<T>::value
>
 {};

Modified: trunk/libs/move/test/move.cpp
==============================================================================
--- trunk/libs/move/test/move.cpp Tue Aug 20 13:22:58 2013 (r85409)
+++ trunk/libs/move/test/move.cpp 2013-08-20 14:10:09 EDT (Tue, 20 Aug 2013) (r85410)
@@ -66,7 +66,6 @@
 {
    #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_STATIC_ASSERT((boost::has_nothrow_move<movable>::value == true));
- BOOST_STATIC_ASSERT((boost::has_nothrow_move<copyable>::value == false));
    BOOST_STATIC_ASSERT((boost::has_move_emulation_enabled<copyable>::value == false));
    BOOST_STATIC_ASSERT((boost::has_move_emulation_enabled<copyable*>::value == false));
    BOOST_STATIC_ASSERT((boost::has_move_emulation_enabled<int>::value == false));


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk