std::launch
Определено в заголовочном файле <future> | ||
|---|---|---|
enum class launch : /* unspecified */ {
async = /* unspecified */,
deferred = /* unspecified */,
/* implementation-defined */
};
| (начиная с C++11) |
std::launch — это BitmaskType. Он задаёт политику запуска для задачи, выполняемой функцией std::async.
Константы
Стандартная библиотека определяет следующие константы, обозначающие отдельные биты:
| Перечислитель | Значение |
|---|---|
async | задача выполняется в другом потоке, который при необходимости сначала создаётся и запускается |
deferred | задача выполняется в вызывающем потоке при первом запросе её результата (ленивое вычисление) |
Кроме того, реализациям разрешается:
- определять дополнительные биты и битовые маски, задающие ограничения на взаимодействие задач, применимые к подмножеству политик запуска, и
- включать эти дополнительные битовые маски для первой (используемой по умолчанию) перегрузки
std::async.
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 2102 | C++11 |
std::launch имел тип, определяемый реализацией | тип не определяется реализацией |
См. также
|
(C++11) | асинхронно выполняет функцию (возможно, в новом потоке) и возвращает std::future, в котором будет храниться результат (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/launch