Spec-Zone.ru › C++

std::iostream_category

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

Получает ссылку на статический объект категории ошибок для ошибок потоков ввода-вывода. Объект должен переопределять виртуальную функцию 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++.

DR Применимо к Поведение при публикации Правильное поведение
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/w/cpp/io/iostream_category

Spec-Zone.ru

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