![]() |
![]() ![]() ![]() ![]() |
![]() |
Class segmented_stackBoost , Chapter 1. Coroutine2 , Stack allocation
|
||||||||||||
![]() |
Note |
|---|---|
Сегментированные стеки в настоящее время поддерживаются толькоgccиз версии4.7иclangиз версии3.4. Для использованиясегментированного стекаBoost.Coroutine2должен быть построен с свойством< |
#include <boost/coroutine2/segmented_stack.hpp> struct segmented_stack { segmented_stack(std::size_t size = traits_type::default_size()); stack_context allocate(); void deallocate( stack_context &); }
stack_context allocate()
<traits_type::minimum:size()
<=size>и<!traits_type::is_unbounded()&&
(traits_type::maximum:size()>=size)>.
Выделяет память не менее<size>байтов и сохраняет указатель на стек и его фактический размер в<sctx>. В зависимости от архитектуры (стек растет вниз/вверх) сохраненный адрес является самым высоким/самым низким адресом стека.
void deallocate( stack_context
& sctx)
<sctx.sp>действительно,<traits_type::minimum:size()<=sctx.size>и<!
traits_type::is_unbounded()
&&(
traits_type::maximum:size()
>=sctx.size)>.
Распределяет пространство стека.
![]() |
Note |
|---|---|
Если библиотека составлена для сегментированных стеков,сегментированный стекявляется единственным доступным распределителем стека. |
Статья Class segmented_stack раздела Chapter 1. Coroutine2 Stack allocation может быть полезна для разработчиков на c++ и boost.
:: Главная :: Stack allocation ::
реклама |