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)
создаёт условие ошибки future 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/cpp/thread/future_errc

Spec-Zone.ru

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