2 // Copyright Oliver Kowalke 2014.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
7 #ifndef BOOST_COROUTINES2_DETAIL_COROUTINE_HPP
8 #define BOOST_COROUTINES2_DETAIL_COROUTINE_HPP
10 #include <boost/config.hpp>
11 #include <boost/context/detail/config.hpp>
13 #ifdef BOOST_HAS_ABI_HEADERS
14 # include BOOST_ABI_PREFIX
18 namespace coroutines2 {
21 template< typename T >
24 template< typename T >
29 #include <boost/coroutine2/detail/pull_coroutine.hpp>
30 #include <boost/coroutine2/detail/push_coroutine.hpp>
32 #if defined(BOOST_EXECUTION_CONTEXT)
33 # if (BOOST_EXECUTION_CONTEXT==1)
34 # include <boost/coroutine2/detail/pull_control_block_ecv1.hpp>
35 # include <boost/coroutine2/detail/push_control_block_ecv1.hpp>
37 # include <boost/coroutine2/detail/pull_control_block_ecv2.hpp>
38 # include <boost/coroutine2/detail/push_control_block_ecv2.hpp>
41 # include <boost/coroutine2/detail/pull_coroutine.ipp>
42 # include <boost/coroutine2/detail/push_coroutine.ipp>
44 # if (BOOST_EXECUTION_CONTEXT==1)
45 # include <boost/coroutine2/detail/pull_control_block_ecv1.ipp>
46 # include <boost/coroutine2/detail/push_control_block_ecv1.ipp>
48 # include <boost/coroutine2/detail/pull_control_block_ecv2.ipp>
49 # include <boost/coroutine2/detail/push_control_block_ecv2.ipp>
53 #ifdef BOOST_HAS_ABI_HEADERS
54 # include BOOST_ABI_SUFFIX
57 #endif // BOOST_COROUTINES2_DETAIL_COROUTINE_HPP