Spec-Zone.ru › C++

std::iostream_category

Определено в заголовочном файле <ios>
const std::error_category& iostream_category() noexcept;
(начиная с C++11)

Получает ссылку на статический объект категории ошибок для ошибок iostream. Этот объект должен переопределять виртуальную функцию error_category::name(), возвращая указатель на строку "iostream". Он используется для идентификации кодов ошибок, передаваемых в исключениях типа std::ios_base::failure.

Параметры

(нет)

Возвращаемое значение

Ссылка на статический объект неуказанного типа времени выполнения, производный от std::error_category.

Пример

#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"
                  << "Error code: " << e.code().value() 
                  << " (" << e.code().message() << ")\n"
                  << "Error category: " << e.code().category().name() << '\n';

    }
}

Возможный вывод:

Caught an ios_base::failure.
Error code: 1 (unspecified iostream_category error)
Error category: iostream

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены ретроспективно к ранее опубликованным стандартам C++.

Отчёт об ошибке Применяется к Опубликованное поведение Корректное поведение
LWG 2087 C++11 iostream_category не была объявлена noexcept объявлена как noexcept

См. также

failure
исключение потока
(открытый вложенный класс std::ios_base)
io_errc
(C++11)
коды ошибок потоков ввода-вывода
(перечисление)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/iostream_category

Spec-Zone.ru

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