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

Class coroutine<>::push_type

Boost , Chapter 1. Coroutine2 , 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/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 > &);
push_type()

Effects:

Создает корутин, представляющийне-корутин.

Throws:

Ничего.

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

Preconditions:

<size>>= minimum_stacksize(),<size><= maximum_stacksize() when ! is_stack_unbounded().

Effects:

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

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

Preconditions:

<size>>= minimum_stacksize(),<size><= maximum_stacksize() when ! is_stack_unbounded().

Effects:

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

~push_type()

Effects:

Уничтожает контекст и распределяет стек.

push_type( push_type && other)

Effects:

Переносит внутренние данные<other>на<*this>.<other>становитсяне-коротин.

Throws:

Ничего.

push_type & operator=( push_type && other)

Effects:

Уничтожает внутренние данные<*this>и перемещает внутренние данные<other>в<*this>.<other>становитсяне-корутин.

Throws:

Ничего.

operator unspecified-bool-type() const

Returns:

Если<*this>относится кне-a-coroutineили функция-coroutine вернулась (завершена), функция возвращается<false>. В противном случае<true>.

Throws:

Ничего.

bool operator!() const

Returns:

Если<*this>относится кне-a-coroutineили функция-coroutine вернулась (завершена), функция возвращается<true>. В противном случае<false>.

Throws:

Ничего.

push_type & operator()(Arg arg)
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:

Исключение составляеткорутин-функция.

void swap( push_type & other)

Effects:

Обмен внутренними данными<*this>со значениями<other>.

Throws:

Ничего.

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

Effects:

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

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

Returns:

Возвращает дальномер (output-iterator).

Non-member function end( push_type< Arg > &)
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>.


PrevUpHomeNext

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




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



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


реклама


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

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