Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

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;
};

attributes()

Effects:

Default constructor using boost::context::default_stacksize(), does unwind the stack after coroutine/generator is complete and preserves FPU registers.

Throws:

Nothing.

attributes( std::size_t size)

Effects:

Argument size defines stack size of the new coroutine. Stack unwinding after termination and preserving FPU registers is set by default.

Throws:

Nothing.

attributes( flag_unwind_t do_unwind)

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.

attributes( flag_fpu_t preserve_fpu)

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.

attributes( std::size_t size, flag_unwind_t do_unwind)

Effects:

Arguments size and do_unwind are given by the user. FPU registers are preserved across each context switch.

Throws:

Nothing.

attributes( std::size_t size, flag_fpu_t preserve_fpu)

Effects:

Arguments size and preserve_fpu are given by the user. The stack is automatically unwound after coroutine/generator terminates.

Throws:

Nothing.

attributes( flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)

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.

attributes( std::size_t size, flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)

Effects:

Arguments size, do_unwind and preserve_fpu are given by the user.

Throws:

Nothing.


PrevUpHomeNext