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

Метод get_future

Метод get_future класса promise возвращает объект future, который связан с данным promise. Через этот future можно в дальнейшем получить значение или исключение, установленное в promise с помощью методов set_value или set_exception. Метод не принимает параметров. Вызывать get_future можно только один раз для одного объекта promise - повторный вызов приведет к исключению std::future_error.

Синтаксис

promise.get_future()

Пример

Давайте создадим promise и получим из него future, а затем передадим значение из одного потока в другой:

#include <iostream> #include <future> #include <thread> using namespace std; int main() { promise<int> prom; future<int> fut = prom.get_future(); thread t([&prom]() { prom.set_value(42); }); cout << fut.get() << endl; t.join(); return 0; }

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

42

Пример

Давайте передадим через promise строковое значение и получим его в главном потоке:

#include <iostream> #include <future> #include <thread> #include <string> using namespace std; int main() { promise<string> prom; future<string> fut = prom.get_future(); thread t([&prom]() { prom.set_value("abcde"); }); cout << fut.get() << endl; t.join(); return 0; }

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

"abcde"

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

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