diff options
Diffstat (limited to '3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp index bb38662..7379bf8 100644 --- a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp +++ b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp @@ -27,6 +27,7 @@ #define BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP #include "boost/type_traits.hpp" +#include "boost/utility/swap.hpp" #include <utility> #if defined BOOST_MSVC @@ -836,6 +837,29 @@ namespace tuples { detail::swallow_assign const ignore = detail::swallow_assign(); +template <class T0, class T1, class T2, class T3, class T4, + class T5, class T6, class T7, class T8, class T9> +void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, + tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs); +inline void swap(null_type&, null_type&) {} +template<class HH> +inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) { + ::boost::swap(lhs.head, rhs.head); +} +template<class HH, class TT> +inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) { + ::boost::swap(lhs.head, rhs.head); + ::boost::tuples::swap(lhs.tail, rhs.tail); +} +template <class T0, class T1, class T2, class T3, class T4, + class T5, class T6, class T7, class T8, class T9> +inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, + tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) { + typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type; + typedef typename tuple_type::inherited base; + ::boost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs)); +} + } // namespace tuples } // namespace boost #endif // BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP |