Spec-Zone.ru › C++

std::future<T>::valid

bool valid() const noexcept;
(начиная с C++11)

Проверяет, ссылается ли объект future на общее состояние.

Это верно только для объектов future, которые не были сконструированы по умолчанию или перемещены из них (то есть возвращены функциями std::promise::get_future(), std::packaged_task::get_future() или std::async()), до первого вызова get() или share().

Поведение не определено, если для объекта future , который не ссылается на общее состояние, вызывается любая функция-член, кроме деструктора, оператора перемещающего присваивания или valid (хотя реализациям рекомендуется в этом случае выбрасывать std::future_error, указывая на no_state). Объект future, для которого valid() равен false, можно перемещать.

Параметры

нет

Возвращаемое значение

true, если *this ссылается на общее состояние, иначе false.

Пример

#include <future>
#include <iostream>

int main()
{
    std::promise<void> p;
    std::future<void> f = p.get_future();

    std::cout << std::boolalpha;

    std::cout << f.valid() << '\n';
    p.set_value();
    std::cout << f.valid() << '\n';
    f.get();
    std::cout << f.valid() << '\n';
}

Вывод:

true
true
false

См. также

wait
ожидает, пока результат станет доступен
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/future/valid

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API