54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//-----------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								// boost variant/detail/move.hpp header file
							 | 
						||
| 
								 | 
							
								// See http://www.boost.org for updates, documentation, and revision history.
							 | 
						||
| 
								 | 
							
								//-----------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Copyright (c) 2002-2003 Eric Friedman
							 | 
						||
| 
								 | 
							
								//  Copyright (c) 2002 by Andrei Alexandrescu
							 | 
						||
| 
								 | 
							
								//  Copyright (c) 2013-2014 Antony Polukhin
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Use, modification and distribution are subject to the
							 | 
						||
| 
								 | 
							
								//  Boost Software License, Version 1.0. (See accompanying file
							 | 
						||
| 
								 | 
							
								//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  This file derivative of MoJO. Much thanks to Andrei for his initial work.
							 | 
						||
| 
								 | 
							
								//  See <http://www.cuj.com/experts/2102/alexandr.htm> for information on MOJO.
							 | 
						||
| 
								 | 
							
								//  Re-issued here under the Boost Software License, with permission of the original
							 | 
						||
| 
								 | 
							
								//  author (Andrei Alexandrescu).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_VARIANT_DETAIL_MOVE_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_VARIANT_DETAIL_MOVE_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <iterator> // for iterator_traits
							 | 
						||
| 
								 | 
							
								#include <new> // for placement new
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/config.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/detail/workaround.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/move/move.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/move/adl_move_swap.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost { namespace detail { namespace variant {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								using boost::move;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								// function template move_swap
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Swaps using Koenig lookup but falls back to move-swap for primitive
							 | 
						||
| 
								 | 
							
								// types and on non-conforming compilers.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <typename T>
							 | 
						||
| 
								 | 
							
								inline void move_swap(T& lhs, T& rhs)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    ::boost::adl_move_swap(lhs, rhs);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}}} // namespace boost::detail::variant
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_VARIANT_DETAIL_MOVE_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |