std::future_errc
Определён в заголовочном файле <future> | ||
|---|---|---|
enum class future_errc {
broken_promise = /* implementation-defined */,
future_already_retrieved = /* implementation-defined */,
promise_already_satisfied = /* implementation-defined */,
no_state = /* implementation-defined */
};
| (начиная с C++11) |
Перечисление с ограниченной областью видимости std::future_errc определяет коды ошибок, сообщаемые std::future и связанными классами в объектах исключений std::future_error. Требуются только четыре кода ошибок, хотя реализация может определять дополнительные коды ошибок. Поскольку предоставлена соответствующая специализация std::is_error_code_enum, значения типа std::future_errc неявно преобразуются в std::error_code.
Все коды ошибок различны и отличны от нуля.
Константы-члены
| Элемент перечисления | Значение |
|---|---|
broken_promise | асинхронная задача отказалась от своего общего состояния |
future_already_retrieved | содержимое общего состояния уже было получено через std::future |
promise_already_satisfied | попытка сохранить значение в общем состоянии повторно |
no_state | попытка получить доступ к std::promise или std::future без связанного общего состояния |
Функции, не являющиеся членами
|
(C++11) | создаёт код ошибки future (функция) |
|
(C++11) | создаёт условие ошибки future error_condition (функция) |
Вспомогательные классы
|
(C++11) | расширяет типовой признак std::is_error_code_enum для распознавания кодов ошибок future (шаблон класса) |
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применён к | Опубликованное поведение | Исправленное поведение |
|---|---|---|---|
| LWG 2056 | C++11 |
broken_promise был определён равным нулю, который обычно используется в значении «нет ошибки» | определён как отличный от нуля |
См. также
|
(C++11) | содержит зависящий от платформы код ошибки (класс) |
|
(C++11) | содержит переносимый код ошибки (класс) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/future_errc