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
一个有效的索引,然后返回一个引用的私有存储与索引longindex
元素. 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.
目录 |
[编辑] 注释
典型使用的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'; }
Output:
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. (公共成员函数) | |
[静态的] </ SPAN></div></div>
|
返回一个程序范围内唯一的整数,它是安全使用指数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. (公共静态成员函数) |