]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/variant/detail/move.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / variant / detail / move.hpp
1 //-----------------------------------------------------------------------------
2 // boost variant/detail/move.hpp header file
3 // See http://www.boost.org for updates, documentation, and revision history.
4 //-----------------------------------------------------------------------------
5 //
6 // Copyright (c) 2002-2003 Eric Friedman
7 // Copyright (c) 2002 by Andrei Alexandrescu
8 // Copyright (c) 2013-2014 Antony Polukhin
9 //
10 // Use, modification and distribution are subject to the
11 // Boost Software License, Version 1.0. (See accompanying file
12 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
13 //
14 // This file derivative of MoJO. Much thanks to Andrei for his initial work.
15 // See <http://www.cuj.com/experts/2102/alexandr.htm> for information on MOJO.
16 // Re-issued here under the Boost Software License, with permission of the original
17 // author (Andrei Alexandrescu).
18
19
20 #ifndef BOOST_VARIANT_DETAIL_MOVE_HPP
21 #define BOOST_VARIANT_DETAIL_MOVE_HPP
22
23 #include <iterator> // for iterator_traits
24 #include <new> // for placement new
25
26 #include <boost/config.hpp>
27 #include <boost/detail/workaround.hpp>
28 #include <boost/move/move.hpp>
29 #include <boost/move/adl_move_swap.hpp>
30
31 namespace boost { namespace detail { namespace variant {
32
33 using boost::move;
34
35 //////////////////////////////////////////////////////////////////////////
36 // function template move_swap
37 //
38 // Swaps using Koenig lookup but falls back to move-swap for primitive
39 // types and on non-conforming compilers.
40 //
41
42 template <typename T>
43 inline void move_swap(T& lhs, T& rhs)
44 {
45 ::boost::adl_move_swap(lhs, rhs);
46 }
47
48 }}} // namespace boost::detail::variant
49
50 #endif // BOOST_VARIANT_DETAIL_MOVE_HPP
51
52
53