std::ios_base — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
||
Класс ios_base — это многофункциональный класс, который служит в качестве базового класса для всех классов потока ввода-вывода. Он содержит несколько видов данных:
1) информация о состоянии: флаги статуса потока;
2) информация об управлении: флаги, которые управляют форматированием входных и выходных последовательностей и используемом языковом стандарте;
3) частные хранилища: индексированные расширяемые структуры данных, которые позволяют хранить данные типов long и void* и могут быть реализованы в виде двух массивов произвольной длины, или одного массива структур из двух элементов, или другой контейнер;
4) функции обратного вызова: произвольное число определяемых пользователем функций, которые будут вызываться из imbue(), copyfmt() и ~ios_base().
Типичная реализация содержит константы, соответствующие всем значениям fmtflags, iostate, openmode и seekdir, которые указаны ниже, и переменные для хранения текущей точности, ширины и флагов форматирования, маски исключений, состояния ошибок буфера, контейнера переменного размера с функциями обратного вызова, используемого в настоящий момент языкового стандарта, частного хранилища и статической целочисленной переменной для xalloc().
Функции-члены
| создает объект (protected функция-элемент) [править] | |
[virtual] |
уничтожает объект (virtual public функция-элемент) [править] |
Форматирование | |
| управляет флагами форматирования (public функция-элемент) [править] | |
| устанавливает заданные флаги форматирования (public функция-элемент) [править] | |
| сбрасывает заданные флаги форматирования (public функция-элемент) [править] | |
| управляет десятичной точностью операций над числами с плавающей запятой (public функция-элемент) [править] | |
| управляет символьной шириной полей (public функция-элемент) [править] | |
Языковой стандарт | |
| устанавливает языковой стандарт (public функция-элемент) [править] | |
| возвращает текущий языковой стандарт (public функция-элемент) [править] | |
Внутренний расширяемый массив | |
[static] |
возвращает уникальное в масштабах программы целое число, которое является безопасным для использования в качестве индекса для pword() и iword() (public static функция-элемент) [править] |
при необходимости изменяет размер закрытого хранилища и предоставляет доступ к элементу типа long по заданному индексу (public функция-элемент) [править] | |
при необходимости изменяет размер закрытого хранилища и предоставляет доступ к элементу типа void* по заданному индексу (public функция-элемент) [править] | |
Прочее | |
| регистрирует функцию обратного вызова на событие (public функция-элемент) [править] | |
[static] |
устанавливает, являются ли библиотеки ввода-вывода C и C++ функционально совместимыми (public static функция-элемент) [править] |
Переменные-члены
Поток исключение Оригинал: stream exception Текст был переведён автоматически используя Переводчик Google. (public элемент класса) [править] | |
инициализирует стандартные объекты потока Оригинал: initializes standard stream objects Текст был переведён автоматически используя Переводчик Google. (public элемент класса) [править] |
Типы-члены и константы-члены
|
(до C++17) | ||||||||||||||||
Отчет об ошибках
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 1357 | C++98 | определенные в std::ios_base операторы operator~,operator& и operator| для типов openmode, fmtflagsи iostate нарушают требования типа BitmaskType[1]
|
определения удалены |
- ↑ Тип BitmaskType должен сам поддерживать битовые операции. Поддержка битовых операций не должна быть предоставлена внешними средствами.