std::shared_future<T>::valid
bool valid() const noexcept; | (начиная с C++11) |
Проверяет, ссылается ли объект future на общее состояние.
Это верно только для объектов future, которые не были созданы конструктором по умолчанию и из которых не выполнялось перемещение. В отличие от std::future, общее состояние std::shared_future не становится недействительным при вызове get().
Поведение не определено, если для объекта shared_future , не ссылающегося на общее состояние, вызывается любая функция-член, кроме деструктора, оператора копирующего присваивания, оператора перемещающего присваивания или valid (хотя в этом случае реализациям рекомендуется выбрасывать std::future_error, указывающий на no_state). Из объекта shared_future, для которого valid() равно false, можно выполнять перемещение или копирование.
Параметры
(нет)
Возвращаемое значение
true, если *this ссылается на общее состояние, иначе false.
Пример
#include <future>
#include <iostream>
int main()
{
std::promise<void> p;
std::shared_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 true
См. также
| ожидает, пока результат станет доступен (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/shared_future/valid