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