1 /* Copyright 2003-2013 Joaquin M Lopez Munoz.
2  * Distributed under the Boost Software License, Version 1.0.
3  * (See accompanying file LICENSE_1_0.txt or copy at
4  * http://www.boost.org/LICENSE_1_0.txt)
5  *
6  * See http://www.boost.org/libs/multi_index for library home page.
7  */
8 
9 #ifndef BOOST_MULTI_INDEX_DETAIL_ADL_SWAP_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_ADL_SWAP_HPP
11 
12 #if defined(_MSC_VER)
13 #pragma once
14 #endif
15 
16 #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
17 #include <algorithm>
18 
19 namespace boost{
20 
21 namespace multi_index{
22 
23 namespace detail{
24 
25 template<typename T>
adl_swap(T & x,T & y)26 void adl_swap(T& x,T& y)
27 {
28 
29 #if !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
30   using std::swap;
31   swap(x,y);
32 #else
33   std::swap(x,y);
34 #endif
35 
36 }
37 
38 } /* namespace multi_index::detail */
39 
40 } /* namespace multi_index */
41 
42 } /* namespace boost */
43 
44 #endif
45