30 Input/output library [input.output]

30.5 Iostreams base classes [iostreams.base]

30.5.3 Class ios_­base [ios.base]

30.5.3.1 Types [ios.types]

30.5.3.1.1 Class ios_­base​::​failure [ios::failure]

namespace std {
  class ios_base::failure : public system_error {
  public:
    explicit failure(const string& msg, const error_code& ec = io_errc::stream);
    explicit failure(const char* msg, const error_code& ec = io_errc::stream);
  };
}

Реализацию разрешено определять ios_­base​::​failure как синоним класса с функциональностью, эквивалентной классу, ios_­base​::​failure показанному в этом подпункте. [ Note: Когда ios_­base​::​failure является синонимом другого типа, он должен предоставлять вложенный тип failureдля имитации имени внедренного класса. ] Класс определяет базовый класс для типов всех объектов, созданных как исключения функциями в библиотеке iostreams, чтобы сообщать об ошибках, обнаруженных во время операций с буфером потока.end notefailure

При ios_­base​::​failure создании исключений реализации должны предоставлять значения, ec которые определяют конкретную причину сбоя. [ Note: Ошибки, возникающие в операционной системе, обычно сообщаются как system_­category() ошибки со значением ошибки, равным номеру ошибки, сообщаемому операционной системой. Об ошибках, возникающих в библиотеке потоков, обычно сообщается как error_­code(io_­errc​::​stream, iostream_­category()). ] end note

explicit failure(const string& msg, const error_code& ec = io_errc::stream);

Effects: Создает объект класса failure , создавая базовый класс с помощью msg и ec.

explicit failure(const char* msg, const error_code& ec = io_errc::stream);

Effects: Создает объект класса failure , создавая базовый класс с помощью msg и ec.