Уничтожает *this
*this
была ассоциирована последняя ссылка на асинхронный результат (при условии, что с *this
вообще что-то ассоциировано), то этот асинхронный результат уничтожается.Нет.
STD::FUTURE::SHARE
Конструирует новый экземпляр std::shared_future
*this
.shared_future
Эквивалентно shared_future
Асинхронный результат, ассоциированный с объектом *this
share()
(если с ним что-то было ассоциировано), ассоциируется с вновь сконструированным экземпляром std::shared_future
. Функция this->valid()
возвращает false
.Нет.
STD::FUTURE::VALID
Проверяет, ассоциирован ли с экземпляром std::future
bool valid() const noexcept;
true
*this
ассоциирован асинхронный результат, иначе false
.Нет.
STD::FUTURE::WAIT
Если состояние, ассоциированное с *this
std::future
.void wait();
this->valid()
true
.Если ассоциированное состояние содержит отложенную функцию, то вызывает эту функцию и сохраняет возвращенное ей значение или объект-исключение в виде асинхронного результата. В противном случае блокирует поток до момента готовности асинхронного результата, ассоциированного с *this
Нет.
STD::FUTURE::WAIT_FOR
Ждет, когда будет готов асинхронный результат, ассоциированный с данным экземпляром std::future
template
future_status wait_for(
std::chrono::duration
this->valid()
true
.Если асинхронный результат, ассоциированный с *this
std::async
, и эта функция, еще не начала исполняться, то возвращает управление немедленно без блокирования потока. В противном случае блокирует поток до момента готовности асинхронного результата, ассоциированного с *this
, или до истечения времени, заданного в аргументе relative_time
.std::future_status::deferred
*this
, содержит отложенную функцию, полученную обращением к std::async
, и эта функция, еще не начала исполняться. std::future_status::ready
, если асинхронный результат, ассоциированный с *this
, готов, std::future_status::timeout
, если истекло время, заданное в аргументе relative_time
.Примечание
. Поток может быть заблокирован на время, превышающее указанное. Если возможно, время измеряется по стабильным часам.Нет.
STD::FUTURE::WAIT_UNTIL
Ждет, когда будет готов асинхронный результат, ассоциированный с данным экземпляром std::future
template
future_status wait_until(
std::chrono::time_point
this->valid()
true
.Если асинхронный результат, ассоциированный с *this
std::async
, и эта функция, еще не начала исполняться, то возвращает управление немедленно без блокирования потока. В противном случае блокирует поток до момента готовности асинхронного результата, ассоциированного с *this
, или до момента, когда функция Clock::now()
вернет время, большее или равное absolute_time
.