|
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