std::ios_base::iword
Материал из cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| long& iword( int index ); |
||
Во-первых, выделяет или изменяет размеры частного хранения (динамический массив long или другой индексируемой структуры данных), достаточно, чтобы сделать
index допустимый индекс, то возвращается ссылка на long элементом частного хранения с индексом index. Original:
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. The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Ссылки могут быть признаны недействительными по любой операции на этом
ios_base объекта, в том числе еще один вызов iword(), но сохраненные значения сохраняются, так что чтение iword(index) с тем же индексом позже будет производить то же значение (до следующего вызова copyfmt()). Значение может быть использована для любых целей. Индекс элемента должно быть получено xalloc(), в противном случае столкновения с другими пользователями этой ios_base может произойти. Новые элементы инициализируются 0.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Если распределение не удается, называет std::basic_ios<>::setstate(badbit), которые могут бросить std::basic_ios::failure
Original:
If allocation fails, calls std::basic_ios<>::setstate(badbit) which may throw std::basic_ios::failure
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Содержание |
[править] Notes
Типичное использование складских iword состоит в передаче информации (например, пользовательские флаги форматирования) из заданных пользователем I / O манипуляторов для определяемых пользователем
operator<< и operator>> или пользовательские форматы грани проникнут в стандартные потоки.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[править] Параметры
| index | - | Значение индекса элемента
Original: index value of the element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[править] Возвращаемое значение
ссылка на элемент
Original:
reference to the element
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[править] Исключения
Может бросить std::ios_base::failure при установке badbit.
Original:
May throw std::ios_base::failure when setting the badbit.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[править] Пример
#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* элемент по заданному индексу Original: resizes the private storage if necessary and access to the void* element at the given index The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| [static] |
возвращает программу в масштабах уникальное целое число, которое является безопасным для использования в качестве индекса Pword () и iword () Original: returns a program-wide unique integer that is safe to use as index to pword() and iword() The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public static функция-член) |