Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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
       positions in a
	  stream or in a file. Each object of type fpos	holds the  byte	 posi-
       tion in the stream
	  (typically  as a private member of type std::streamoff) and the cur-
       rent shift state,
	  a value of type State	(typically std::mbstate_t).

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

	  Defined in header <iosfwd>
	  Type		       Definition
	  streampos	       std::fpos<std::char_traits<char>::state_type>
	  wstreampos
       std::fpos<std::char_traits<wchar_t>::state_type>
	  u8streampos						       (C++20)
       std::fpos<std::char_traits<char8_t>::state_type>
	  u16streampos						       (C++11)
       std::fpos<std::char_traits<char16_t>::state_type>
	  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
       constructor. If
	  State	 is trivially copy assignable, fpos has	a trivial copy assign-
       ment operator. If
	  State	is trivially destructible, fpos	has a trivial destructor.

	 Template parameter

	  State		     -		    the	type  representing  the	 shift
       state

Type requirements
	  -
	  State	 must  meet  the requirements of Destructible, CopyAssignable,
       CopyConstructible
	  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-
       initializes the
	      state object.

	    *  A  non-explicit	constructor  that  accepts an argument of type
       (possibly const)
	      std::streamoff, which stores that	offset and and	value-initial-
       izes 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 operations
	      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 (pos-
       sibly 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 (pos-
       sibly 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 re-
       sult 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 ob-
       jects 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
       library is
	  implementation-defined     when     Traits::pos_type	   is	   not
       std::fpos<std::mbstate_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
       Correct behavior
			     streampos and wstreampos were
	  LWG  57   C++98	contradictionally  allowed  to	be   different
       clarified to be same
			     whiled required to	be same
	  P0759R1   C++98	 specification	 was  unclear  and  incomplete
       cleaned up
	  P1148R0 C++11	     unclear what and in which header the	  made
       clear
			     definition	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_os-
       tream<CharT,Traits>)
	  seekp	    sets the output position indicator
		    (public	member	   function	of	std::basic_os-
       tream<CharT,Traits>)
	  fgetpos   gets the file position indicator
		    (function)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::fpos&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help