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

Template promise<>

Boost , Chapter 1. Fiber , Futures

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

A promise<> предоставляет механизм для хранения ценности (или исключения), которая позже может быть извлечена из соответствующего объекта будущее<>. продюсировать<> и футур<> общаться через свое базовое состояние бритое.

#include <boost/fiber/future/promise.hpp>
namespace boost {
namespace fibers {
template< typename R >
class promise {
public:
    promise();
    template< typename Allocator >
    promise( std::allocator_arg_t, Allocator);
    promise( promise &&) noexcept;
    promise & operator=( promise &&) noexcept;
    promise( promise const&) = delete;
    promise & operator=( promise const&) = delete;
    ~promise();
    void swap( promise &) noexcept;
    future< R > get_future();
    void set_value( R const&);  // member only of generic promise template
    void set_value( R &&);      // member only of generic promise template
    void set_value( R &);       // member only of promise< R & > template
    void set_value();           // member only of promise< void > template
    void set_exception( std::exception_ptr p);
};
template< typename R >
void swap( promise< R > &, promise< R > &) noexcept;
}
Default constructor
promise();

Effects:

Создает обещание с пустым общим состоянием.

Throws:

Исключения, вызванные распределением памяти.

Constructor
template< typename Allocator >
promise( std::allocator_arg_t, Allocator alloc);

Effects:

Создает обещание с пустым общим состоянием, используя alloc.

Throws:

Исключения, вызванные распределением памяти.

See also:

std::allocator_arg_t

Move constructor
promise( promise && other) noexcept;

Effects:

Создает обещание, перемещая совместное состояние от другой.

Postcondition:

другая не содержит действующего общего состояния.

Throws:

Ничего.

Destructor
~promise();

Effects:

Уничтожает *это и отказывается от общего состояния, если готово общее состояние; в противном случае хранит будущее_error с условием ошибки future_errc::broken_promise, как если бы по promise::set_ exception(): общее состояние готово.

Member function operator=()

promise & operator=( promise && other) noexcept;

Effects:

Передает право собственности на общее состояние на *это.

Postcondition:

другая не содержит действующего общего состояния.

Throws:

Ничего.

Member function swap()

void swap( promise & other) noexcept;

Effects:

Плавает совместное состояние между другим и *это.

Throws:

Ничего.

Member function get_future()

future< R > get_future();

Returns:

A future<> с тем же shared state.

Throws:

future_error с future_errc::future_already_retrieved или future_errc::no_state.

Member function set_value()

void set_value( R const& value);  // member only of generic promise template
void set_value( R && value);      // member only of generic promise template
void set_value( R & value);       // member only of promise< R & > template
void set_value();                 // member only of promise< void > template

Effects:

Сохранить результат в общем состоянии и отмечает состояние как готовое.

Throws:

future_error с future_errc::future_already_satied или future_errc::no_state.

Member function set_exception()

void set_exception( std::exception_ptr);

Effects:

Храните указатель исключения в общем состоянии и отмечает состояние как готовое.

Throws:

future_error с future_errc::future_already_satied или future_errc::no_state.

Non-member function swap()

template< typename R >
void swap( promise< R > & l, promise< R > & r) noexcept;

Effects:

То же, что и l.swap( r).


PrevUpHomeNext

Статья Template promise<> раздела Chapter 1. Fiber Futures может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Futures ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 09:09:25/0.0066699981689453/0