РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
809 of 815 menu

Метод valid

Метод valid класса future возвращает true, если объект future связан с разделяемым состоянием, то есть с результатом асинхронной операции, и false в противном случае. Метод не принимает параметров. Если объект future был создан по умолчанию или результат уже был получен с помощью метода get, то метод valid вернёт false.

Синтаксис

fut.valid()

Пример

Давайте создадим объект future по умолчанию и проверим его валидность с помощью метода valid:

#include <iostream> #include <future> using namespace std; int main() { future<int> fut; cout << boolalpha << fut.valid() << endl; return 0; }

Результат выполнения кода:

false

Пример

Давайте создадим асинхронную задачу с помощью async и проверим валидность полученного объекта future:

#include <iostream> #include <future> using namespace std; int main() { future<int> fut = async(launch::async, []() { return 42; }); cout << boolalpha << fut.valid() << endl; return 0; }

Результат выполнения кода:

true

Пример

Давайте получим результат через метод get и проверим, что после этого объект future становится невалидным:

#include <iostream> #include <future> using namespace std; int main() { future<int> fut = async(launch::async, []() { return 42; }); int res = fut.get(); cout << res << endl; cout << boolalpha << fut.valid() << endl; return 0; }

Результат выполнения кода:

42 false

Смотрите также

  • класс future,
    который представляет результат асинхронной операции
  • метод get,
    который возвращает результат из объекта future
  • метод wait,
    который ожидает завершения асинхронной операции
  • метод wait_for,
    который ожидает результат в течение заданного времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить