// (C) Copyright Daniel Wallin 2004. // Distributed under 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.) // Contains the definitions of the class template move_source and the function // template move, which together make move pointers moveable. #ifndef BOOST_MOVE_HPP_INCLUDED #define BOOST_MOVE_HPP_INCLUDED namespace boost { namespace ptr_container_detail { namespace move_ptrs { #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) #pragma warning(push) #pragma warning(disable:4512) #endif template class move_source { public: move_source(Ptr& ptr) : ptr_(ptr) {} Ptr& ptr() const { return ptr_; } private: Ptr& ptr_; move_source(const Ptr&); }; #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) #pragma warning(pop) #endif } // End namespace move_ptrs. template move_ptrs::move_source move(T& x) { return move_ptrs::move_source(x); } } // namespace 'ptr_container_detail' } // End namespace boost. #endif // #ifndef BOOST_MOVE_HPP_INCLUDED