[/ Copyright Oliver Kowalke 2014. 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 ] [section:attributes Attributes] Class `attributes` is used to specify parameters required to setup a coroutine's context. enum flag_unwind_t { stack_unwind, no_stack_unwind }; enum flag_fpu_t { fpu_preserved, fpu_not_preserved }; struct attributes { std::size_t size; flag_unwind_t do_unwind; flag_fpu_t preserve_fpu; attributes() noexcept; explicit attributes( std::size_t size_) noexcept; explicit attributes( flag_unwind_t do_unwind_) noexcept; explicit attributes( flag_fpu_t preserve_fpu_) noexcept; explicit attributes( std::size_t size_, flag_unwind_t do_unwind_) noexcept; explicit attributes( std::size_t size_, flag_fpu_t preserve_fpu_) noexcept; explicit attributes( flag_unwind_t do_unwind_, flag_fpu_t preserve_fpu_) noexcept; explicit attributes( std::size_t size_, flag_unwind_t do_unwind_, flag_fpu_t preserve_fpu_) noexcept; }; [heading `attributes()`] [variablelist [[Effects:] [Default constructor using `boost::context::default_stacksize()`, does unwind the stack after coroutine/generator is complete and preserves FPU registers.]] [[Throws:] [Nothing.]] ] [heading `attributes( std::size_t size)`] [variablelist [[Effects:] [Argument `size` defines stack size of the new coroutine. Stack unwinding after termination and preserving FPU registers is set by default.]] [[Throws:] [Nothing.]] ] [heading `attributes( flag_unwind_t do_unwind)`] [variablelist [[Effects:] [Argument `do_unwind` determines if stack will be unwound after termination or not. The default stacksize is used for the new coroutine and FPU registers are preserved.]] [[Throws:] [Nothing.]] ] [heading `attributes( flag_fpu_t preserve_fpu)`] [variablelist [[Effects:] [Argument `preserve_fpu` determines if FPU register have to be preserved across context switches. The default stacksize is used for the new coroutine and its stack will be unwound after termination.]] [[Throws:] [Nothing.]] ] [heading `attributes( std::size_t size, flag_unwind_t do_unwind)`] [variablelist [[Effects:] [Arguments `size` and `do_unwind` are given by the user. FPU registers are preserved across each context switch.]] [[Throws:] [Nothing.]] ] [heading `attributes( std::size_t size, flag_fpu_t preserve_fpu)`] [variablelist [[Effects:] [Arguments `size` and `preserve_fpu` are given by the user. The stack is automatically unwound after coroutine/generator terminates.]] [[Throws:] [Nothing.]] ] [heading `attributes( flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)`] [variablelist [[Effects:] [Arguments `do_unwind` and `preserve_fpu` are given by the user. The stack gets a default value of `boost::context::default_stacksize()`.]] [[Throws:] [Nothing.]] ] [heading `attributes( std::size_t size, flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)`] [variablelist [[Effects:] [Arguments `size`, `do_unwind` and `preserve_fpu` are given by the user.]] [[Throws:] [Nothing.]] ] [endsect]