Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85181 - in trunk: boost/move libs/move/doc
From: igaztanaga_at_[hidden]
Date: 2013-08-01 10:43:25


Author: igaztanaga
Date: 2013-08-01 10:43:25 EDT (Thu, 01 Aug 2013)
New Revision: 85181
URL: http://svn.boost.org/trac/boost/changeset/85181

Log:
Fixes #8765.

Text files modified:
   trunk/boost/move/utility.hpp | 22 +++++++++++-----------
   trunk/libs/move/doc/move.qbk | 3 ++-
   2 files changed, 13 insertions(+), 12 deletions(-)

Modified: trunk/boost/move/utility.hpp
==============================================================================
--- trunk/boost/move/utility.hpp Thu Aug 1 10:17:39 2013 (r85180)
+++ trunk/boost/move/utility.hpp 2013-08-01 10:43:25 EDT (Thu, 01 Aug 2013) (r85181)
@@ -37,7 +37,7 @@
    template <class T>
    inline typename ::boost::move_detail::enable_if_c
       < enable_move_utility_emulation<T>::value && !has_move_emulation_enabled<T>::value, T&>::type
- move(T& x)
+ move(T& x) BOOST_NOEXCEPT
    {
       return x;
    }
@@ -45,7 +45,7 @@
    template <class T>
    inline typename ::boost::move_detail::enable_if_c
       < enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
- move(T& x)
+ move(T& x) BOOST_NOEXCEPT
    {
       return *static_cast<rv<T>* >(::boost::move_detail::addressof(x));
    }
@@ -53,7 +53,7 @@
    template <class T>
    inline typename ::boost::move_detail::enable_if_c
       < enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
- move(rv<T>& x)
+ move(rv<T>& x) BOOST_NOEXCEPT
    {
       return x;
    }
@@ -67,7 +67,7 @@
    template <class T>
    inline typename ::boost::move_detail::enable_if_c
       < enable_move_utility_emulation<T>::value && ::boost::move_detail::is_rv<T>::value, T &>::type
- forward(const typename ::boost::move_detail::identity<T>::type &x)
+ forward(const typename ::boost::move_detail::identity<T>::type &x) BOOST_NOEXCEPT
    {
       return const_cast<T&>(x);
    }
@@ -75,7 +75,7 @@
    template <class T>
    inline typename ::boost::move_detail::enable_if_c
       < enable_move_utility_emulation<T>::value && !::boost::move_detail::is_rv<T>::value, const T &>::type
- forward(const typename ::boost::move_detail::identity<T>::type &x)
+ forward(const typename ::boost::move_detail::identity<T>::type &x) BOOST_NOEXCEPT
    {
       return x;
    }
@@ -123,19 +123,19 @@
          //! in compilers with rvalue references. For other compilers converts T & into
          //! <i>::boost::rv<T> &</i> so that move emulation is activated.
          template <class T>
- rvalue_reference move (input_reference);
+ rvalue_reference move(input_reference) noexcept;
 
       #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
          template <class T>
- inline typename remove_reference<T>::type && move(T&& t)
+ inline typename remove_reference<T>::type && move(T&& t) BOOST_NOEXCEPT
          { return t; }
 
       #else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
 
          template <class T>
- inline typename remove_reference<T>::type && move(T&& t)
+ inline typename remove_reference<T>::type && move(T&& t) BOOST_NOEXCEPT
          { return static_cast<typename remove_reference<T>::type &&>(t); }
 
       #endif //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
@@ -159,13 +159,13 @@
          //! ::boost::rv<T> &
          //!
          //! * Else, output_reference is equal to input_reference.
- template <class T> output_reference forward(input_reference);
+ template <class T> output_reference forward(input_reference) noexcept;
       #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
 
          template <class T>
- inline T&& forward (typename ::boost::move_detail::identity<T>::type&& t)
+ inline T&& forward(typename ::boost::move_detail::identity<T>::type&& t) BOOST_NOEXCEPT
          { return t; }
 
       #else //Old move
@@ -178,7 +178,7 @@
                move_detail::is_lvalue_reference<T>::value ? move_detail::is_lvalue_reference<U>::value : true>::type * = 0/*
              , typename ::boost::move_detail::enable_if_c<
                move_detail::is_convertible
- <typename remove_reference<U>::type*, typename remove_reference<T>::type*>::value>::type * = 0*/)
+ <typename remove_reference<U>::type*, typename remove_reference<T>::type*>::value>::type * = 0*/) BOOST_NOEXCEPT
          { return static_cast<T&&>(t); }
 
       #endif //BOOST_MOVE_DOXYGEN_INVOKED

Modified: trunk/libs/move/doc/move.qbk
==============================================================================
--- trunk/libs/move/doc/move.qbk Thu Aug 1 10:17:39 2013 (r85180)
+++ trunk/libs/move/doc/move.qbk 2013-08-01 10:43:25 EDT (Thu, 01 Aug 2013) (r85181)
@@ -802,7 +802,8 @@
 
 
 * Fixed bugs [@https://svn.boost.org/trac/boost/ticket/7969 #7969],
- [@https://svn.boost.org/trac/boost/ticket/8231 #8231].
+ [@https://svn.boost.org/trac/boost/ticket/8231 #8231],
+ [@https://svn.boost.org/trac/boost/ticket/8765 #8765].
 
 [endsect]
 


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