Spec-Zone.ru › C++

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

См. также

is_error_code_enum
(C++11)
определяет класс как перечисление типа error_code
(шаблон класса)
error_code
(C++11)
содержит платформозависимый код ошибки
(класс)
io_errc
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API