diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2019-05-20 15:16:27 -0400 |
---|---|---|
committer | Henrik Edin <henrik.edin@mongodb.com> | 2019-05-22 09:27:54 -0400 |
commit | 5c12c52f6f9e7371b37e43d3cf5145d61ffa70d3 (patch) | |
tree | 2b07eb318ec88fda315a3039779e5b8231768264 /src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp | |
parent | 48ea7f8532c6390cad46c0e81bbf3dee79229eab (diff) | |
download | mongo-5c12c52f6f9e7371b37e43d3cf5145d61ffa70d3.tar.gz |
SERVER-40834 Upgrade boost to version 1.70
Diffstat (limited to 'src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp')
-rw-r--r-- | src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp b/src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp new file mode 100644 index 00000000000..35f601a7793 --- /dev/null +++ b/src/third_party/boost-1.70.0/boost/coroutine/detail/setup.hpp @@ -0,0 +1,75 @@ + +// Copyright Oliver Kowalke 2009. +// 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) + +#ifndef BOOST_COROUTINES_DETAIL_SETUP_H +#define BOOST_COROUTINES_DETAIL_SETUP_H + +#include <boost/assert.hpp> +#include <boost/config.hpp> +#include <boost/move/move.hpp> +#include <boost/type_traits/decay.hpp> +#include <boost/type_traits/is_convertible.hpp> +#include <boost/type_traits/is_same.hpp> + +#include <boost/coroutine/attributes.hpp> +#include <boost/coroutine/detail/coroutine_context.hpp> +#include <boost/coroutine/detail/flags.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace coroutines { +namespace detail { + +template< typename Fn > +struct setup +{ + struct dummy {}; + + Fn fn; + coroutine_context * caller; + coroutine_context * callee; + attributes attr; + +#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES + setup( Fn fn_, + coroutine_context * caller_, + coroutine_context * callee_, + attributes const& attr_) : + fn( boost::forward< Fn >( fn_) ), + caller( caller_), + callee( callee_), + attr( attr_) + {} +#endif + setup( BOOST_RV_REF( Fn) fn_, + coroutine_context * caller_, + coroutine_context * callee_, + attributes const& attr_, + typename disable_if< + is_same< typename decay< Fn >::type, setup >, + dummy* + >::type = 0) : +#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES + fn( fn_), +#else + fn( boost::forward< Fn >( fn_) ), +#endif + caller( caller_), + callee( callee_), + attr( attr_) + {} +}; + +}}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif // BOOST_COROUTINES_DETAIL_SETUP_H |