std::ios_base::Init
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   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 instance 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 #include <iostream> is included in the translation unit before these objects were defined)
Member functions
|    (constructor)  | 
  if *this is the first instance created, initializes the default C++ streams  (public member function)  | 
|    (destructor)  | 
  if *this is the last instance destroyed, flushes the default C++ streams  (public member function)  | 
See also
|   reads from the standard C input stream stdin  (global object)  | |
|   writes to the standard C output stream stdout (global object)  | |
|   writes to the standard C error stream stderr, unbuffered (global object)  | |
|   writes to the standard C error stream stderr (global object)  |