Namespaces
Variants

std:: is_error_code_enum <std::io_errc>

From cppreference.net
< cpp ‎ | io ‎ | io errc
std::io_errc
Non-member functions
Helper classes
is_error_code_enum <std::io_errc>
(C++11)
Определено в заголовочном файле <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

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

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