std::future<T>::valid
bool valid() const noexcept; | (since C++11) |
Проверяет, ссылается ли будущее на общее состояние.
Это имеет место только для будущих объектов, которые не были созданы по умолчанию или перемещены (т.е. возвращены функциями std::promise::get_future(), std::packaged_task::get_future() или std::async()) до первого вызова get() или share().
Поведение является неопределённым, если любой член-функции, кроме деструктора, оператора присваивания с перемещением или valid вызывается на объекте future , который не ссылается на общее состояние (хотя реализации рекомендуется выбрасывать исключение std::future_error, указывающее на no_state в этом случае). Допустимо перемещение из объекта будущего, для которого 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
См. также
| ожидание готовности результата (общедоступный член-функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/future/valid