Man Page fpos.3



                       Standard C++ Library
             Copyright 1998, Rogue Wave Software, Inc.



NAME

     fpos

      - Maintains position information fort he iostream classes.





SYNOPSIS

     #include <rw/iotraits>
     template<class stateT = mbstate_t>
     class fpos





DESCRIPTION

     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 posi-
     tioning  type,  whereas streams instantiated on wide charac-
     ters   use   wstreampos,   but   both   are    defined    as
     fpos<mbstate_t>.





INTERFACE

     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);

     };





TYPES

     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.






PUBLIC CONSTRUCTORS

     fpos(long off =0);


        Constructs an fpos object, initializing its position with
        off and its conversion state with the default stateT con-
        structor. This function is not described in the C++ stan-
        dard.



     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.






PUBLIC MEMBER FUNCTIONS

     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)  indi-
        cates 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.






VALID OPERATIONS

     In the following,



     o    P refers to type fpos<stateT>

     o    p and q refer to a value of type fpos<stateT>

     o    O refers to the  offset  type  (streamoff,  wstreamoff,
          long )

     o    o refers to a value of the offset type

     o    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







SEE ALSO

     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.





STANDARDS CONFORMANCE

     ANSI X3J16/ISO WG21 Joint C++ Committee