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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_ios::copyfmt - std::basic_ios::copyfmt

Synopsis
	  basic_ios& copyfmt(const basic_ios& other);

	  If  other refers to the same object as *this,	has no effects.	Other-
       wise, copies the
	  state	of the stream other into *this.	This is	done in	the  following
       sequence:

	  1)  Calls  every  callback registered	by register_callback() passing
       erase_event as
	  parameter
	  2) Copies all	member objects from other  to  *this  except  for  rd-
       state(),	the exception
	  mask,	 and  rdbuf().	In particular, makes copies of the locale, the
       formatting flags,
	  the	contents    of	  the	 arrays	   std::ios_base::iword	   and
       std::ios_base::pword (but not
	  the  iword  and  pword  pointers themselves),	the callbacks, and the
       tied stream.
	  3) Calls every callback registered  by  register_callback()  passing
       copyfmt_event as
	  parameter
	  4) Copies the	exception mask from other to *this as if by calling
	  exceptions(other.exceptions())

Parameters
	  other	- another stream to use	as source

Return value
	  *this

Notes
	  The  second  pass through the	callbacks may be used to deep-copy the
       user-defined
	  objects pointed to by	the pointers in	std::ios_base::pword

	  copyfmt() may	be used	to save	and restore the	 state	of  a  stream.
       Boost provides a
	  more fine-grained I/O	state savers library for the same purpose.

Example
	  makes	 the std::ofstream object "out"	behave exactly like std::cout,
       including
	  formatting, tie() to std::cin, etc.

       // Run this code

	#include <iostream>
	#include <fstream>

	int main()
	{
	    std::ofstream out;

	    out.copyfmt(std::cout); // copy everything except rdstate and  rd-
       buf
	    out.clear(std::cout.rdstate()); // copy rdstate
	    out.basic_ios<char>::rdbuf(std::cout.rdbuf()); // share the	buffer

	    out	<< "Hello, world\n";
	}

Output:
	Hello, world

http://cppreference.com		  2022.07.31	    std::basic_ios::copyfmt(3)

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

home | help