...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
stack_traits models a stack-traits providing a way to access certain properites defined by the enironment. Stack allocators use stack-traits to allocate stacks.
#include <boost/coroutine/stack_traits.hpp> struct stack_traits { static bool is_unbounded() noexcept; static std::size_t page_size() noexcept; static std::size_t default_size() noexcept; static std::size_t minimum_size() noexcept; static std::size_t maximum_size() noexcept; }
static bool is_unbounded()
Returns true
if the environment
defines no limit for the size of a stack.
Nothing.
static std::size_t page_size()
Returns the page size in bytes.
Nothing.
static std::size_t default_size()
Returns a default stack size, which may be platform specific. If the
stack is unbounded then the present implementation returns the maximum
of 64 kB
and minimum_size()
.
Nothing.
static std::size_t minimum_size()
Returns the minimum size in bytes of stack defined by the environment (Win32 4kB/Win64 8kB, defined by rlimit on POSIX).
Nothing.
static std::size_t maximum_size()
is_unbounded()
returns false
.
Returns the maximum size in bytes of stack defined by the environment.
Nothing.