home | help
std::fpos(3)		       C++ Standard Libary		    std::fpos(3)

NAME
     std::fpos - std::fpos

Synopsis
	Defined in header <ios>
	template< class State >
	class fpos;

	Specializations  of the class template std::fpos identify absolute posi-
     tions in a
	stream or in a file. Each object of type fpos holds the byte position in
     the stream
	(typically as a private member of type std::streamoff) and  the  current
     shift state,
	a value of type State (typically std::mbstate_t).

	The  following	typedef names for std::fpos<std::mbstate_t> are provided
     (although
	they are spelled differently in  the  standard,  they  denote  the  same
     type):

	Defined in header <iosfwd>
	Type			  Definition
	std::streampos		  std::fpos<std::char_traits<char>::state_type>
	std::wstreampos
     std::fpos<std::char_traits<wchar_t>::state_type>
	std::u8streampos(C++20)
     std::fpos<std::char_traits<char8_t>::state_type>
	std::u16streampos						 (C++11)
     std::fpos<std::char_traits<char16_t>::state_type>
	std::u32streampos						 (C++11)
     std::fpos<std::char_traits<char32_t>::state_type>

	All  specializations  of  fpos	meet  the DefaultConstructible, CopyCon-
     structible,
	CopyAssignable, Destructible, and EqualityComparable requirements.

	If State is trivially copy constructible, fpos has a trivial  copy  con-
     structor. If
	State  is  trivially copy assignable, fpos has a trivial copy assignment
     operator. If
	State is trivially destructible, fpos has a trivial destructor.

Type requirements
	-
	State must meet the requirements of Destructible, CopyAssignable,  Copy-
     Constructible
	and DefaultConstructible.

Member functions
	state gets/sets the value of the shift state
	      (public member function)

	In addition, member and non-member functions are provided to support the
     following
	operations:

	  *  A	default constructor that stores an offset of zero and value-ini-
     tializes the
	    state object.
	  * A non-explicit constructor that accepts an argument of type  (possi-
     bly const)
	    std::streamoff,  which  stores that offset and value-initializes the
     state object.
	    This   constructor	 must	also   accept	 the	special    value
     std::streamoff(-1): the
	    std::fpos  constructed in this manner is returned by some stream op-
     erations to
	    indicate errors.
	  * Explicit conversion from (possibly const)  fpos  to  std::streamoff.
     The result is
	    the stored offset.
	  * operator== and operator!= that compare two objects of type (possibly
     const)
	    std::fpos and returns a value of type convertible to bool. p != q is
     equivalent
	    to !(p == q).
	  * operator+ and operator- such that, for an object p of type (possibly
     const)
	    fpos<State> and an object o of type (possibly const) std::streamoff

	  *  p	+ o has type fpos<State> and stores an offset that is the result
     of adding o
	    to the offset of p.
	  * o + p has a type convertible to fpos<State> and the  result  of  the
     conversion is
	    equal to p + o.
	  *  p	- o has type fpos<State> and stores an offset that is the result
     of
	    subtracting o from the offset of p.
	  * operator+= and  operator-=	which  can  accept  a  (possibly  const)
     std::streamoff and
	    adds/subtracts it from the stored offset, respectively.
	  *  operator-	which  can subtract two objects of type (possibly const)
     std::fpos
	    producing an std::streamoff, such that for two such objects p and q,
     p == q + (p
	    - q).

Notes
	Some of the I/O streams member functions return and  manipulate  objects
     of member
	typedef pos_type. For streams, these member typedefs are provided by the
     template
	parameter Traits, which defaults to std::char_traits, which define their
     pos_types
	to  be specializations of std::fpos. The behavior of the I/O streams li-
     brary is
	implementation-defined when Traits::pos_type is  not  std::fpos<std::mb-
     state_t> (aka
	std::streampos, std::wstreampos, etc.).

	Defect reports

	The  following	behavior-changing  defect  reports were applied retroac-
     tively to
	previously published C++ standards.

	  DR	Applied to		Behavior as published		    Cor-
     rect behavior
			   streampos  and  wstreampos	were   contradictionally
     clarified to
	LWG  57   C++98      allowed to be different while required to be the be
     the same
			   same
	P0759R1   C++98        specification   was   unclear   and    incomplete
     cleaned up
	P1148R0 C++11	   unclear what and in which header the 	    made
     clear
			   definitions u16streampos and u32streampos are

See also
		  represents  relative	file/stream position (offset from fpos),
     sufficient to
	streamoff represent any file size
		  (typedef)
	tellp	  returns the output position indicator
		  (public member function of std::basic_ostream<CharT,Traits>)
	seekp	  sets the output position indicator
		  (public member function of std::basic_ostream<CharT,Traits>)
	fgetpos   gets the file position indicator
		  (function)

http://cppreference.com 	   2024.06.10			    std::fpos(3)

home | help