|  | Home | Libraries | People | FAQ | More | 
        Boost.Fiber supports usage of a  segmented_stack,
        i.e. the stack grows on demand. The fiber is created with a minimal stack
        size which will be increased as required. Class  segmented_stack models
        the stack-allocator concept.
        In contrast to  protected_fixedsize_stack and
         fixedsize_stack it creates a stack which grows on demand.
      
| ![[Note]](../../../../../../doc/src/images/note.png) | Note | 
|---|---|
| 
          Segmented stacks are currently only supported by gcc
          from version 4.7 and clang
          from version 3.4 onwards. In order to
          use a   | 
#include <boost/fiber/segmented_stack.hpp> struct segmented_stack { segmented_stack(std::size_t stack_size = traits_type::default_size()); stack_context allocate(); void deallocate( stack_context &); }
stack_context allocate()
      
              traits_type::minimum_size()
              <= size
              and traits_type::is_unbounded()
              || (
              traits_type::maximum_size()
              >= size).
            
              Allocates memory of at least size
              bytes and stores a pointer to the stack and its actual size in sctx. Depending on the architecture
              (the stack grows downwards/upwards) the stored address is the highest/lowest
              address of the stack.
            
void deallocate( stack_context
        & sctx)
      
              sctx.sp is valid, traits_type::minimum_size() <= sctx.size and traits_type::is_unbounded() || ( traits_type::maximum_size() >= sctx.size).
            
Deallocates the stack space.
| ![[Note]](../../../../../../doc/src/images/note.png) | Note | 
|---|---|
| 
          If the library is compiled for segmented stacks,   |