Spec-Zone.ru › C++

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 без связанного разделяемого состояния

Нечленные функции

make_error_code(std::future_errc)
(C++11)
создает код ошибки объекта future
(функция)
make_error_condition(std::future_errc)
(C++11)
создаёт объект error_condition
(функция)

Вспомогательные классы

is_error_code_enum<std::future_errc>
(C++11)
расширяет тип-признак std::is_error_code_enum для идентификации кодов ошибок объектов future
(шаблон класса)

Пример

Отчёты о дефектах

Следующие отчёты о дефектах, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применено к Поведение при публикации Правильное поведение
LWG 2056 C++11 broken_promise должно было быть равно нулю, что традиционно используется для обозначения «нет ошибки» указано, что не равно нулю

См. также

error_code
(C++11)
содержит платформозависимый код ошибки
(класс)
error_condition
(C++11)
содержит переносимый код ошибки
(класс)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/future_errc

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API