Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85089 - in trunk: boost/variant libs/variant/test
From: antoshkka_at_[hidden]
Date: 2013-07-20 13:20:02


Author: apolukhin
Date: 2013-07-20 13:20:02 EDT (Sat, 20 Jul 2013)
New Revision: 85089
URL: http://svn.boost.org/trac/boost/changeset/85089

Log:
Temporary disable noexcept detection for move assignment for Boost.Variant (exception specification detection for assignment requires call to is_nothrow_move_assignable for each type. But GCC 4.6 fails to do that and complains about incomplete types ) (refs #7911)

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

Modified: trunk/boost/variant/variant.hpp
==============================================================================
--- trunk/boost/variant/variant.hpp Sat Jul 20 13:17:10 2013 (r85088)
+++ trunk/boost/variant/variant.hpp 2013-07-20 13:20:02 EDT (Sat, 20 Jul 2013) (r85089)
@@ -2209,7 +2209,7 @@
     }
 
 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
- variant& operator=(variant&& rhs) BOOST_NOEXCEPT_IF(variant_move_noexcept::type::value)
+ variant& operator=(variant&& rhs) // BOOST_NOEXCEPT_IF(variant_move_noexcept::type::value && all move assign operators are noexcept)
     {
         variant_assign( detail::variant::move(rhs) );
         return *this;

Modified: trunk/libs/variant/test/rvalue_test.cpp
==============================================================================
--- trunk/libs/variant/test/rvalue_test.cpp Sat Jul 20 13:17:10 2013 (r85088)
+++ trunk/libs/variant/test/rvalue_test.cpp 2013-07-20 13:20:02 EDT (Sat, 20 Jul 2013) (r85089)
@@ -185,11 +185,11 @@
 void run_moves_are_noexcept() {
 #ifndef BOOST_NO_CXX11_NOEXCEPT
     typedef boost::variant<int, short, double> variant_noexcept_t;
- BOOST_CHECK(boost::is_nothrow_move_assignable<variant_noexcept_t>::value);
+ //BOOST_CHECK(boost::is_nothrow_move_assignable<variant_noexcept_t>::value);
     BOOST_CHECK(boost::is_nothrow_move_constructible<variant_noexcept_t>::value);
 
     typedef boost::variant<int, short, double, move_only_structure> variant_except_t;
- BOOST_CHECK(!boost::is_nothrow_move_assignable<variant_except_t>::value);
+ //BOOST_CHECK(!boost::is_nothrow_move_assignable<variant_except_t>::value);
     BOOST_CHECK(!boost::is_nothrow_move_constructible<variant_except_t>::value);
 #endif
 }


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