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

NAME
     std::ios_base::Init - std::ios_base::Init

Synopsis
	class Init;

	This  class  is  used  to ensure that the default C++ streams (std::cin,
     std::cout,
	etc.) are properly initialized and destructed. The class tracks how many
     instances
	of it are created and initializes the C++ streams  when  the  first  in-
     stance is
	constructed as well as flushes the output streams when the last instance
     is
	destructed.

	The  header <iostream> behaves as if it defines (directly or indirectly)
     an instance
	of std::ios_base::Init with static storage duration: this makes it  safe
     to access
	the  standard  I/O streams in the constructors and destructors of static
     objects with
	ordered initialization (as long as <iostream> is included in the  trans-
     lation unit
	before these objects were defined).

	Each C++ library module in a hosted implementation behaves as if it
	contains an interface unit that defines an unexported
	std::ios_base::Init variable with ordered initialization.
									       (since
     C++23)
	As a result, the definition of that variable is appearance-ordered
	before any declaration following the point of importation of a C++
	library module. Whether such a definition exists is unobservable by a
	program that does not reference any of the standard iostream objects.

Member functions
	constructor    initializes the default C++ streams if they have not been
     created yet
		      (public member function)
		      flushes the default C++ streams if *this is the  last  in-
     stance to be
	destructor    destroyed
		      (public member function)

	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
			    the behaviors of the constructor and the
	LWG 1123  C++98       destructor				 removed
     the dependency
			    depend on an exposition-only static data
			    member init_cnt

See also
	cin   reads from the standard C input stream stdin
	wcin  (global object)
	cout  writes to the standard C output stream stdout
	wcout (global object)
	cerr  writes to the standard C error stream stderr, unbuffered
	wcerr (global object)
	clog  writes to the standard C error stream stderr
	wclog (global object)

http://cppreference.com 	   2024.06.10		  std::ios_base::Init(3)

home | help