Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class asymmetric_coroutine<>::pull_type

Boost , Chapter 1. Coroutine , Asymmetric coroutine

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
#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 > &);
pull_type()

Effects:

Создает маршрут, представляющий not-a-coroutine.

Throws:

Ничего.

template< typename Fn > pull_type( Fn && fn, attributes const& attr)

Preconditions:

size >= minimum_stacksize(), size <= maximum_stacksize() при ! is_stack_unbounded().

Effects:

Создает корутин, который будет выполнять fn, и войдет в него. Аргумент attr определяет стек очистки.

Throws:

Исключения, выброшенные внутри корутин-функция.

template< typename Fn, typename StackAllocator > pull_type( Fn && fn, attributes const& attr, StackAllocator const& stack_alloc)

Preconditions:

size >= minimum_stacksize(), size <= maximum_stacksize() при ! is_stack_unbounded().

Effects:

Создает маршрут, который будет выполнять fn. Аргумент attr определяет стек очистки. Для распределения/распределения стека stack_alloc используется.

Throws:

Исключения, выброшенные внутри корутин-функция.

~pull_type()

Effects:

Уничтожает контекст и стека.

pull_type( pull_type && other)

Effects:

Перемещает внутренние данные other на *это. другой становится не-корутин.

Throws:

Ничего.

pull_type & operator=( pull_type && other)

Effects:

Уничтожает внутренние данные *эта и перемещает внутренние данные другой на *эта. другой становится не-корутин.

Throws:

Ничего.

operator unspecified-bool-type() const

Returns:

Если *это относится к не-корутин или корутина-функция вернулась (завершена), функция возвращает false. В противном случае Правда.

Throws:

Ничего.

bool operator!() const

Returns:

Если *это относится к не-корутин или корутина-функция вернулась (завершена), функция возвращает Правда. В противном случае false.

Throws:

Ничего.

pull_type<> & operator()()

Preconditions:

*это не не корутин.

Effects:

Контроль исполнения переносится на корутин-функцию (ни один параметр не передается на корутин-функцию).

Throws:

Исключения, выброшенные внутри корутин-функция.

R get()
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.

void swap( pull_type & other)

Effects:

Перекрывает внутренние данные от *это с значениями другие.

Throws:

Ничего.

Non-member function swap()
template< typename R >
void swap( pull_type< R > & l, pull_type< R > & r);

Effects:

Как будто 'l.swap( r)'.

Non-member function begin( pull_type< R > &)
template< typename R >
range_iterator< pull_type< R > >::type begin( pull_type< R > &);

Returns:

Description.

Non-member function end( pull_type< R > &)
template< typename R >
range_iterator< pull_type< R > >::type end( pull_type< R > &);

Returns:

Description.

Note:

> & > &), или после некоторого количества аккумулятора R.


PrevUpHomeNext

Статья Class asymmetric_coroutine<>::pull_type раздела Chapter 1. Coroutine Asymmetric coroutine может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Asymmetric coroutine ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:04:39/0.0095071792602539/1