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