Пространства имён
Варианты
Действия

std::ios_base::iword

Материал из cppreference.com
< cpp‎ | io‎ | ios base

 
 
Библиотека ввода/вывода
Манипуляторы ввода/вывода
Функции print (C++23)
Ввод/вывод в стиле C
Буферы
(устарело в C++98)
Потоки
Абстракции
Файловый ввод/вывод
Ввод/вывод строк
Ввод/вывод массивов
(устарело в C++98)
(устарело в C++98)
(устарело в C++98)
Синхронизированный вывод
Типы
Интерфейс категорий ошибок
(C++11)
 
std::ios_base
Функции-члены
Форматирование
Оригинал:
Formatting
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Языки
Оригинал:
Locales
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Внутренние расширяемый массив
Оригинал:
Internal extensible array
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ios_base::iword
Разное
Оригинал:
Miscellaneous
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Член классов
Оригинал:
Member classes
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Член типов
Оригинал:
Member types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
long& iword( int index );
Во-первых, выделяет или изменяет размеры частного хранения (динамический массив long или другой индексируемой структуры данных), достаточно, чтобы сделать index допустимый индекс, то возвращается ссылка на long элементом частного хранения с индексом index.
Оригинал:
First, allocates or resizes the private storage (dynamic array of long or another indexable data structure) sufficiently to make index a valid index, then returns a reference to the long element of the private storage with the index index.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Ссылки могут быть признаны недействительными по любой операции на этом ios_base объекта, в том числе еще один вызов iword(), но сохраненные значения сохраняются, так что чтение iword(index) с тем же индексом позже будет производить то же значение (до следующего вызова copyfmt()). Значение может быть использована для любых целей. Индекс элемента должно быть получено xalloc(), в противном случае столкновения с другими пользователями этой ios_base может произойти. Новые элементы инициализируются 0.
Оригинал:
The reference may be invalidated by any operation on this ios_base object, including another call to iword(), but the stored values are retained, so that reading from iword(index) with the same index later will produce the same value (until the next call to copyfmt()). The value can be used for any purpose. The index of the element must be obtained by xalloc(), otherwise collisions with other users of this ios_base may occur. New elements are initialized to 0.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если распределение не удается, называет std::basic_ios<>::setstate(badbit), которые могут бросить std::basic_ios::failure
Оригинал:
If allocation fails, calls std::basic_ios<>::setstate(badbit) which may throw std::basic_ios::failure
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Заметки

Типичное использование складских iword состоит в передаче информации (например, пользовательские флаги форматирования) из заданных пользователем I / O манипуляторов для определяемых пользователем operator<< и operator>> или пользовательские форматы грани проникнут в стандартные потоки.
Оригинал:
Typical use of iword storage is to pass information (e.g. custom formatting flags) from user-defined I/O manipulators to user-defined operator<< and operator>> or to user-defined formatting facets imbued into standard streams.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Параметры

index
Значение индекса элемента
Оригинал:
index value of the element
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

ссылка на элемент
Оригинал:
reference to the element
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Исключения

Может бросить std::ios_base::failure при установке badbit.
Оригинал:
May throw std::ios_base::failure when setting the badbit.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <iostream>
#include <string>
 
struct Foo {
    static int foo_xalloc;
    std::string data;
    Foo(const std::string& s) : data(s) {}
};
 
// allocates the iword storage for use with Foo objects
int Foo::foo_xalloc = std::ios_base::xalloc();
 
// This user-defined operator<< prints the string in reverse if the iword holds 1
std::ostream& operator<<(std::ostream& os, Foo& f)
{
    if(os.iword(Foo::foo_xalloc) == 1)
        return os << std::string(f.data.rbegin(), f.data.rend());
    else
        return os << f.data;
}
 
// This I/O manipulator flips the number stored in iword between 0 and 1
std::ios_base& rev(std::ios_base& os)
{
    os.iword(Foo::foo_xalloc) = !os.iword(Foo::foo_xalloc);
    return os;
}
 
int main()
{
    Foo f("example");
    std::cout << f << '\n' << rev << f << '\n' << rev << f << '\n';
}

Вывод:

example
elpmaxe
example

[править] См. также

при необходимости изменяет размер закрытого хранилища и предоставляет доступ к элементу типа void* по заданному индексу
(public функция-элемент) [править]
[static]
возвращает уникальное в масштабах программы целое число, которое является безопасным для использования в качестве индекса для pword() и iword()
(public static функция-элемент) [править]