std::error_condition
| Определён в заголовочном файле <system_error>
|
||
class error_condition;
|
(начиная с C++11) | |
std::error_condition содержит независимое от платформы значение, идентифицирующее условие ошибки. Как и std::error_code, оно однозначно идентифицируется целочисленным значением и std::error_category, но в отличие от std::error_code, значение не зависит от платформы.
Типичная реализация содержит одно целочисленное поле-данных (значение) и указатель на std::error_category.
Функции-члены
конструирует
error_condition
(public member function) |
|
|
заменяет содержимое
(public member function) |
|
|
заменяет содержимое
(public member function) |
|
устанавливает
error_condition
в значение
0
в
generic_category
(public member function) |
|
получает значение
error_condition
(public member function) |
|
получает
error_category
для данного
error_condition
(public member function) |
|
|
получает пояснительную строку
(public member function) |
|
|
проверяет, является ли значение ненулевым
(public member function) |
Функции, не являющиеся членами класса
|
(удалено в C++20)
(удалено в C++20)
(C++20)
|
сравнивает
error_condition
и
error_code
(функция) |
Вспомогательные классы
|
(C++11)
|
идентифицирует перечисление как
std::error_condition
(шаблон класса) |
|
(C++17)
|
поддержка хеширования для
std::error_condition
(специализация шаблона класса) |
Примечания
Сравнение между error_condition и std::error_code определяется их категориями ошибок. В частности, условие ошибки std::generic_category может быть равно коду ошибки конкретной категории (например, std::system_category ), если они представляют один и тот же тип ошибки.
Значение
std::errc
может быть сравнено с кодом ошибки через неявное преобразование в
std::error_condition
.
#include <cerrno> #include <iostream> #include <system_error> #include <Windows.h> int main() { std::error_code ec{ERROR_FILE_EXISTS, std::system_category()}; std::error_condition econd{EEXIST, std::generic_category()}; std::cout.setf(std::ios::boolalpha); std::cout << (ec == econd) << '\n'; // обычно true std::cout << (ec == std::errc::file_exists) << '\n'; // аналогично std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // разные категории }
Возможный вывод:
true true false
Смотрите также
|
(C++11)
|
содержит платформозависимый код ошибки
(класс) |
|
(C++11)
|
базовый класс для категорий ошибок
(класс) |
|
(C++11)
|
создает условие ошибки для значения
errc
e
(функция) |