Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/coroutine/detail/trampoline.hpp @ 60:01e6213c3f91
Merge
author | Chris Cannam |
---|---|
date | Fri, 12 Sep 2014 08:17:00 +0100 |
parents | 2665513ce2d3 |
children | c530137014c0 |
line wrap: on
line source
// 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_TRAMPOLINE_H #define BOOST_COROUTINES_DETAIL_TRAMPOLINE_H #include <cstddef> #include <boost/assert.hpp> #include <boost/config.hpp> #include <boost/cstdint.hpp> #include <boost/tuple/tuple.hpp> #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { namespace coroutines { namespace detail { template< typename Coroutine > void trampoline1( intptr_t vp) { BOOST_ASSERT( vp); reinterpret_cast< Coroutine * >( vp)->run(); } template< typename Coroutine, typename Arg > void trampoline2( intptr_t vp) { BOOST_ASSERT( vp); tuple< Coroutine *, Arg > * tpl( reinterpret_cast< tuple< Coroutine *, Arg > * >( vp) ); Coroutine * coro( get< 0 >( * tpl) ); Arg arg( get< 1 >( * tpl) ); coro->run( arg); } }}} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif #endif // BOOST_COROUTINES_DETAIL_TRAMPOLINE_H