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) | коды ошибок потоков ввода-вывода (перечисление) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/io_errc/is_error_code_enum