1 2 // Copyright Oliver Kowalke 2009. 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) 6 7 #ifndef BOOST_COROUTINES_ATTRIBUTES_H 8 #define BOOST_COROUTINES_ATTRIBUTES_H 9 10 #include <cstddef> 11 12 #include <boost/config.hpp> 13 14 #include <boost/coroutine/flags.hpp> 15 #include <boost/coroutine/stack_allocator.hpp> 16 17 #ifdef BOOST_HAS_ABI_HEADERS 18 # include BOOST_ABI_PREFIX 19 #endif 20 21 namespace boost { 22 namespace coroutines { 23 24 struct attributes 25 { 26 std::size_t size; 27 flag_unwind_t do_unwind; 28 attributesboost::coroutines::attributes29 attributes() BOOST_NOEXCEPT : 30 size( stack_allocator::traits_type::default_size() ), 31 do_unwind( stack_unwind) 32 {} 33 attributesboost::coroutines::attributes34 explicit attributes( std::size_t size_) BOOST_NOEXCEPT : 35 size( size_), 36 do_unwind( stack_unwind) 37 {} 38 attributesboost::coroutines::attributes39 explicit attributes( flag_unwind_t do_unwind_) BOOST_NOEXCEPT : 40 size( stack_allocator::traits_type::default_size() ), 41 do_unwind( do_unwind_) 42 {} 43 attributesboost::coroutines::attributes44 explicit attributes( 45 std::size_t size_, 46 flag_unwind_t do_unwind_) BOOST_NOEXCEPT : 47 size( size_), 48 do_unwind( do_unwind_) 49 {} 50 }; 51 52 }} 53 54 #ifdef BOOST_HAS_ABI_HEADERS 55 # include BOOST_ABI_SUFFIX 56 #endif 57 58 #endif // BOOST_COROUTINES_ATTRIBUTES_H 59