Spec-Zone.ru › C++

std::shared_future<T>::valid

bool valid() const noexcept;
(since C++11)

Проверяет, ссылается ли будущее на общее состояние.

Это верно только для будущих объектов, которые не были созданы по умолчанию или не были перемещены. В отличие от std::future, общее состояние std::shared_future не становится недействительным, когда вызывается get().

Поведение не определено, если любой член-функции, кроме деструктора, оператора присваивания копирования, оператора присваивания перемещения или valid вызывается на shared_future , не ссылающемся на общее состояние (хотя реализации должны выбрасывать 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

См. также

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

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

Spec-Zone.ru

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