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

Класс future

Класс future представляет собой объект, который позволяет получить результат асинхронной операции. Он предоставляет механизм для ожидания завершения задачи и получения её результата. Объект future обычно создается с помощью функций async, promise или packaged_task. Класс не предназначен для копирования, но поддерживает перемещение. Основные методы позволяют проверить валидность состояния, дождаться результата и извлечь его.

Синтаксис

#include <future> std::future<T> future_name;

Пример

Давайте создадим асинхронную задачу, которая возвращает число 42, и получим результат с помощью метода get:

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

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

42

Пример

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

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

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

true 123 false

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

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