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/cpp/io/io_errc/is_error_code_enum