Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/ptr_container/detail/move.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDENCIES/generic/include/boost/ptr_container/detail/move.hpp Tue Aug 05 11:11:38 2014 +0100 @@ -0,0 +1,44 @@ +// (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<typename Ptr> +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<typename T> +move_ptrs::move_source<T> move(T& x) +{ return move_ptrs::move_source<T>(x); } + +} // namespace 'ptr_container_detail' +} // End namespace boost. + +#endif // #ifndef BOOST_MOVE_HPP_INCLUDED