move.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 61 行

HPP
61
字号
// 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)// (C) Copyright 2007-8 Anthony Williams#ifndef BOOST_THREAD_MOVE_HPP#define BOOST_THREAD_MOVE_HPP#ifndef BOOST_NO_SFINAE#include <boost/utility/enable_if.hpp>#include <boost/type_traits/is_convertible.hpp>#endif#include <boost/config/abi_prefix.hpp>namespace boost{    namespace detail    {        template<typename T>        struct thread_move_t        {            T& t;            explicit thread_move_t(T& t_):                t(t_)            {}            T& operator*() const            {                return t;            }            T* operator->() const            {                return &t;            }        private:            void operator=(thread_move_t&);        };    }#ifndef BOOST_NO_SFINAE    template<typename T>    typename enable_if<boost::is_convertible<T&,detail::thread_move_t<T> >, T >::type move(T& t)    {        return T(detail::thread_move_t<T>(t));    }#endif        template<typename T>    detail::thread_move_t<T> move(detail::thread_move_t<T> t)    {        return t;    }    }#include <boost/config/abi_suffix.hpp>#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?