std:: is_error_code_enum <std::io_errc>
|
Определено в заголовочном файле
<ios>
|
||
|
template
<>
struct is_error_code_enum < std:: io_errc > : public std:: true_type { } ; |
(начиная с C++11) | |
Эта специализация std::is_error_code_enum информирует другие компоненты библиотеки, что значения типа std::io_errc являются перечислениями, которые содержат коды ошибок, что делает их неявно преобразуемыми и присваиваемыми объектам типа std::error_code .
Содержание |
Наследуется от std:: integral_constant
Константы-члены
|
value
[static]
|
true
(публичная статическая константа-член) |
Функции-члены
|
operator bool
|
преобразует объект в
bool
, возвращает
value
(публичная функция-член) |
|
operator()
(C++14)
|
возвращает
value
(публичная функция-член) |
Типы-члены
| Тип | Определение |
value_type
|
bool |
type
|
std:: integral_constant < bool , value > |
Пример
Сравнение между e. code ( ) и std::io_errc::stream компилируется, потому что std:: is_error_code_enum < std:: io_errc > :: value == true .
#include <fstream> #include <iostream> int main() { std::ifstream f("doesn't exist"); try { f.exceptions(f.failbit); } catch (const std::ios_base::failure& e) { std::cout << "Caught an ios_base::failure.\n"; if (e.code() == std::io_errc::stream) std::cout << "The error code is std::io_errc::stream\n"; } }
Вывод:
Caught an ios_base::failure. The error code is std::io_errc::stream
Смотрите также
|
(C++11)
|
идентифицирует класс как перечисление
error_code
(шаблон класса) |
|
(C++11)
|
содержит платформозависимый код ошибки
(класс) |
|
(C++11)
|
коды ошибок потокового ввода-вывода
(перечисление) |