Namespaces
Variants

std:: future_errc

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
future_errc
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
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 без связанного общего состояния

Функции, не являющиеся членами класса

создает код ошибки future
(функция)
создает error_condition для future
(функция)

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

расширяет признак типа std::is_error_code_enum для идентификации кодов ошибок future
(шаблон класса)

Пример

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

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

DR Applied to Behavior as published Correct behavior
LWG 2056 C++11 broken_promise was specified to be zero which is conventionally used to mean "no error" specified to be non-zero

Смотрите также

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