Конструирует экземпляр std::packaged_task
ResultType
и задача типа Callable
, полученная копированием func
. Память под асинхронный результат и задачу выделяется с помощью распределителя alloc
или его копии.Любое исключение, возбуждаемое распределителем в случае неудачной попытки выделить память под асинхронный результат или задачу. Любое исключение, возбуждаемое копирующим или перемещающим конструктором Callable
STD::PACKAGED_TASK
Конструирует один объект std::packaged_task
other
, вновь сконструированному.packaged_task(packaged_task&& other) noexcept;
Конструирует новый экземпляр std::packaged_task
Асинхронный результат и задача, которые были ассоциированы с объектом other
std::packaged_task
. С объектом other
больше не связан никакой асинхронный результат.Нет.
STD::PACKAGED_TASK
Передает владение ассоциированным асинхронным результатом от одного объекта std::packaged_task
packaged_task& operator=(packaged_task&& other) noexcept;
Передает владение асинхронным результатом и задачей, ассоциированными с объектом other
*this
и отбрасывает ранее ассоциированный асинхронный результат, как если бы было выполнено предложение std::packaged_task(other).swap(*this)
.Асинхронный результат и задача, которые были ассоциированы с объектом other
*this
. С объектом other
больше не связан никакой асинхронный результат.*this
Нет.
STD::PACKAGED_TASK::SWAP
Обменивает владение асинхронными результатами, ассоциированными с двумя объектами std::packaged_task
void swap(packaged_task& other) noexcept;
Обменивает владение асинхронными результатами и задачами, ассоциированными с объектами other
*this
.Асинхронный результат и задача, которые были ассоциированы с объектом other
swap
(если таковые действительно были), ассоциируются с *this
. Асинхронный результат и задача, которые были ассоциировать с объектом *this
до вызова swap
(если таковые действительно были), ассоциируются с other
.Нет.
STD::PACKAGED_TASK
Уничтожает объект std::packaged_task
~packaged_task();
Уничтожает *this
*this
ассоциирован асинхронный результат и в этом результате не хранится задача или исключение, то результат становится std::future_error
с кодом ошибки std::future_errc::broken_promise
.Нет.
STD::PACKAGED_TASK::GET_FUTURE
Извлекает экземпляр std::future
*this
.std::future
С *this
Экземпляр std::future
*this
.Исключение типа std::future_error
std::future_errc::future_already_retrieved
, если объект std::future
уже был получен для этого асинхронного результата с помощью предшествующего обращения к get_future()
.STD::PACKAGED_TASK::RESET
Ассоциирует экземпляр std::packaged_task
void reset();
С *this
Эквивалентно *this = packaged_task(std::move(f))
f
― хранимая задача, ассоциированная с *this
.Исключение типа std::bad_alloc