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) | создаёт объект 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/w/cpp/thread/future_errc