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 ::