Class coroutine<>::push_type
#include < boost / coroutine2 / coroutine . hpp >
template < typename Arg >
class coroutine <>:: push_type
{
public :
push_type () noexcept ;
template < typename Fn >
push_type ( Fn && fn , attributes const & attr = attributes () );
template < typename Fn , typename StackAllocator >
push_type ( Fn && fn , attributes const & attr , StackAllocator stack_alloc );
push_type ( push_type const & other )= delete ;
push_type & operator =( push_type const & other )= delete ;
~ push_type ();
push_type ( push_type && other ) noexcept ;
push_type & operator =( push_type && other ) noexcept ;
operator unspecified - bool - type () const noexcept ;
bool operator !() const noexcept ;
void swap ( push_type & other ) noexcept ;
push_type & operator ()( Arg arg );
};
template < typename Arg >
void swap ( push_type < Arg > & l , push_type < Arg > & r );
template < typename Arg >
range_iterator < push_type < Arg > >:: type begin ( push_type < Arg > &);
template < typename Arg >
range_iterator < push_type < Arg > >:: type end ( push_type < Arg > &);
Effects:
Создает корутин, представляющийне-корутин .
Throws:
Ничего.
Preconditions:
<size >>= minimum_stacksize(),<size ><= maximum_stacksize() when ! is_stack_unbounded().
Effects:
Создает систему, которая будет выполняться<fn >. Аргумент<attr >определяет очистку стека и сохранение регистров с плавающей запятой.
Preconditions:
<size >>= minimum_stacksize(),<size ><= maximum_stacksize() when ! is_stack_unbounded().
Effects:
Создает систему, которая будет выполнять<fn >. Аргумент<attr >определяет очистку стека и сохранение регистров с плавающей запятой. Для выделения/размещения используется стек<stack_alloc >.
Effects:
Уничтожает контекст и распределяет стек.
Effects:
Переносит внутренние данные<other >на<* this >.<other >становитсяне-коротин .
Throws:
Ничего.
Effects:
Уничтожает внутренние данные<* this >и перемещает внутренние данные<other >в<* this >.<other >становитсяне-корутин .
Throws:
Ничего.
Returns:
Если<* this >относится кне-a-coroutine или функция-coroutine вернулась (завершена), функция возвращается<false >. В противном случае<true >.
Throws:
Ничего.
Returns:
Если<* this >относится кне-a-coroutine или функция-coroutine вернулась (завершена), функция возвращается<true >. В противном случае<false >.
Throws:
Ничего.
push_type & coroutine < Arg >:: push_type :: operator ()( Arg );
push_type & coroutine < Arg &>:: push_type :: operator ()( Arg &);
push_type & coroutine < void >:: push_type :: operator ()();
Preconditions:
<true >,<* this >, [скрыто], [скрыто], [скрыто], [скрыто].
Effects:
Контроль исполнения передаетсякорутинной функции и аргумент<arg >передается корутинной функции.
Throws:
Исключение составляеткорутин-функция .
Effects:
Обмен внутренними данными<* this >со значениями<other >.
Throws:
Ничего.
template < typename Arg >
void swap ( push_type < Arg > & l , push_type < Arg > & r );
Effects:
Как будто "l.swap(r)".
template < typename Arg >
range_iterator < push_type < Arg > >:: type begin ( push_type < Arg > &);
Returns:
Возвращает дальномер (output-iterator).
template < typename Arg >
range_iterator < push_type < Arg > >:: type end ( push_type < Arg > &);
Returns:
Возвращает конечный дальномер (output-iterator).
Note:
При первом получении из<begin ( push_type < R
> &) >или после некоторого количества операций приращения итератор будет сравниваться с итератором, возвращенным<end ( push_type < R
> &) >, когда соответствующийкорутин<>::push_type::operator bool вернется<false >.
Статья Class coroutine<>::push_type раздела Chapter 1. Coroutine2 Asymmetric coroutine может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Asymmetric coroutine ::