mirror of
https://github.com/boostorg/move.git
synced 2025-08-01 05:14:27 +02:00
@@ -802,7 +802,8 @@ Many thanks to all boosters that have tested, reviewed and improved the library.
|
|||||||
|
|
||||||
|
|
||||||
* Fixed bugs [@https://svn.boost.org/trac/boost/ticket/7969 #7969],
|
* 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]
|
[endsect]
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline typename ::boost::move_detail::enable_if_c
|
inline typename ::boost::move_detail::enable_if_c
|
||||||
< enable_move_utility_emulation<T>::value && !has_move_emulation_enabled<T>::value, T&>::type
|
< enable_move_utility_emulation<T>::value && !has_move_emulation_enabled<T>::value, T&>::type
|
||||||
move(T& x)
|
move(T& x) BOOST_NOEXCEPT
|
||||||
{
|
{
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline typename ::boost::move_detail::enable_if_c
|
inline typename ::boost::move_detail::enable_if_c
|
||||||
< enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
|
< 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));
|
return *static_cast<rv<T>* >(::boost::move_detail::addressof(x));
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline typename ::boost::move_detail::enable_if_c
|
inline typename ::boost::move_detail::enable_if_c
|
||||||
< enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
|
< 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;
|
return x;
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline typename ::boost::move_detail::enable_if_c
|
inline typename ::boost::move_detail::enable_if_c
|
||||||
< enable_move_utility_emulation<T>::value && ::boost::move_detail::is_rv<T>::value, T &>::type
|
< 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);
|
return const_cast<T&>(x);
|
||||||
}
|
}
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline typename ::boost::move_detail::enable_if_c
|
inline typename ::boost::move_detail::enable_if_c
|
||||||
< enable_move_utility_emulation<T>::value && !::boost::move_detail::is_rv<T>::value, const T &>::type
|
< 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;
|
return x;
|
||||||
}
|
}
|
||||||
@@ -123,19 +123,19 @@
|
|||||||
//! in compilers with rvalue references. For other compilers converts T & into
|
//! in compilers with rvalue references. For other compilers converts T & into
|
||||||
//! <i>::boost::rv<T> &</i> so that move emulation is activated.
|
//! <i>::boost::rv<T> &</i> so that move emulation is activated.
|
||||||
template <class T>
|
template <class T>
|
||||||
rvalue_reference move (input_reference);
|
rvalue_reference move(input_reference) noexcept;
|
||||||
|
|
||||||
#elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
|
#elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
|
||||||
|
|
||||||
//Old move approach, lvalues could bind to rvalue references
|
//Old move approach, lvalues could bind to rvalue references
|
||||||
template <class T>
|
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; }
|
{ return t; }
|
||||||
|
|
||||||
#else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
#else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
||||||
|
|
||||||
template <class T>
|
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); }
|
{ return static_cast<typename remove_reference<T>::type &&>(t); }
|
||||||
|
|
||||||
#endif //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
#endif //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
||||||
@@ -159,13 +159,13 @@
|
|||||||
//! ::boost::rv<T> &
|
//! ::boost::rv<T> &
|
||||||
//!
|
//!
|
||||||
//! * Else, output_reference is equal to input_reference.
|
//! * 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)
|
#elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
|
||||||
|
|
||||||
//Old move approach, lvalues could bind to rvalue references
|
//Old move approach, lvalues could bind to rvalue references
|
||||||
|
|
||||||
template <class T>
|
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; }
|
{ return t; }
|
||||||
|
|
||||||
#else //Old move
|
#else //Old move
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
move_detail::is_lvalue_reference<T>::value ? move_detail::is_lvalue_reference<U>::value : true>::type * = 0/*
|
move_detail::is_lvalue_reference<T>::value ? move_detail::is_lvalue_reference<U>::value : true>::type * = 0/*
|
||||||
, typename ::boost::move_detail::enable_if_c<
|
, typename ::boost::move_detail::enable_if_c<
|
||||||
move_detail::is_convertible
|
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); }
|
{ return static_cast<T&&>(t); }
|
||||||
|
|
||||||
#endif //BOOST_MOVE_DOXYGEN_INVOKED
|
#endif //BOOST_MOVE_DOXYGEN_INVOKED
|
||||||
|
Reference in New Issue
Block a user