Maintains position information fort he iostream classes.
Data Types |
state_type |
#include <rw/iotraits> template<class stateT = mbstate_t> class fpos
The template class fpos<stateT> is used by the iostream classes to maintain position information. It maintains three kinds of information: the absolute position, the conversion state and the validity of the stored position. Streams instantiated on tiny characters use streampos as their positioning type, whereas streams instantiated on wide characters use wstreampos, but both are defined as fpos<mbstate_t>.
template <class stateT = mbstate_t> class fpos { public: typedef stateT state_type; fpos(long off = 0); fpos(state_type); bool good(); operator long(); long offset() cont; long offset(long); state_type state(state_type); state_type state () const; long pos() const; long pos(long); };
state_type
The type state_type holds the conversion state, and is compatible with the function locale::codecvt(). By default it is defined as mbstate_t.
fpos(long off =0);
Constructs an fpos object, initializing its position with off and its conversion state with the default stateT constructor. This function is not described in the C++ standard.
fpos(state_type st);
Constructs an fpos object, initializing its conversion state with st, its position with the start position, and its status to good.
state_type state() const;
Returns the conversion state stored in the fpos object.
state_type state(state_type st);
Stores st as the new conversion state in the fpos object and returns its previous value.
bool good();
Returns the status of the fpos object. Offset(-1) indicates an invalid value and returns false.
operator long();
Converts fpos object to absolute displacement. This operator is handy when used with functions such as tellp() or tellg() to get absolute displacement.
long offset() const;
Returns the signed displacement in the fpos object.
long offset(long off);
Stores off as the new signed displacement in the fpos object and returns its previous value.
long pos() const;
Returns the absolute position in the fpos object.
long offset(long pos);
Stores pos as the new absolute position in the fpos object and returns its previous value.
In the following,
P refers to type fpos<stateT>
p and q refer to a value of type fpos<stateT>
O refers to the offset type (streamoff, wstreamoff, long )
o refers to a value of the offset type
i refers to a value of type int
Valid operations:
P p( I ); | Constructs from int |
P p = i; | Assigns from int |
P( o ) | Converts from offset |
O( p ) | Converts to offset |
p == q | Tests for equality |
p != q | Tests for inequality |
q = p + o | Adds offset |
p += o | Adds offset |
q = p -o | Subtracts offset |
q -= o | Subtracts offset |
o = p - q | Returns offset |
iosfwd(3C++), char_traits(3C++)
Working Paper for Draft Proposed International Standard for Information Systems--Programming Language C++, Section 27.4.
Amendment 1 to the C Standard.
ANSI X3J16/ISO WG21 Joint C++ Committee