diff options
Diffstat (limited to 'boost/coroutine/attributes.hpp')
-rw-r--r-- | boost/coroutine/attributes.hpp | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/boost/coroutine/attributes.hpp b/boost/coroutine/attributes.hpp new file mode 100644 index 0000000000..065a4c66e3 --- /dev/null +++ b/boost/coroutine/attributes.hpp @@ -0,0 +1,94 @@ + +// 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_ATTRIBUTES_H +#define BOOST_COROUTINES_ATTRIBUTES_H + +#include <cstddef> + +#include <boost/config.hpp> + +#include <boost/coroutine/flags.hpp> +#include <boost/coroutine/stack_allocator.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace coroutines { + +struct attributes +{ + std::size_t size; + flag_unwind_t do_unwind; + flag_fpu_t preserve_fpu; + + attributes() BOOST_NOEXCEPT : + size( stack_allocator::traits_type::default_size() ), + do_unwind( stack_unwind), + preserve_fpu( fpu_preserved) + {} + + explicit attributes( std::size_t size_) BOOST_NOEXCEPT : + size( size_), + do_unwind( stack_unwind), + preserve_fpu( fpu_preserved) + {} + + explicit attributes( flag_unwind_t do_unwind_) BOOST_NOEXCEPT : + size( stack_allocator::traits_type::default_size() ), + do_unwind( do_unwind_), + preserve_fpu( fpu_preserved) + {} + + explicit attributes( flag_fpu_t preserve_fpu_) BOOST_NOEXCEPT : + size( stack_allocator::traits_type::default_size() ), + do_unwind( stack_unwind), + preserve_fpu( preserve_fpu_) + {} + + explicit attributes( + std::size_t size_, + flag_unwind_t do_unwind_) BOOST_NOEXCEPT : + size( size_), + do_unwind( do_unwind_), + preserve_fpu( fpu_preserved) + {} + + explicit attributes( + std::size_t size_, + flag_fpu_t preserve_fpu_) BOOST_NOEXCEPT : + size( size_), + do_unwind( stack_unwind), + preserve_fpu( preserve_fpu_) + {} + + explicit attributes( + flag_unwind_t do_unwind_, + flag_fpu_t preserve_fpu_) BOOST_NOEXCEPT : + size( stack_allocator::traits_type::default_size() ), + do_unwind( do_unwind_), + preserve_fpu( preserve_fpu_) + {} + + explicit attributes( + std::size_t size_, + flag_unwind_t do_unwind_, + flag_fpu_t preserve_fpu_) BOOST_NOEXCEPT : + size( size_), + do_unwind( do_unwind_), + preserve_fpu( preserve_fpu_) + {} +}; + +}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif // BOOST_COROUTINES_ATTRIBUTES_H |