std::once_flag
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <mutex> | ||
| class once_flag; | (since C++11) | |
The class std::once_flag is a helper structure for std::call_once.
An object of type std::once_flag that is passed to multiple calls to std::call_once allows those calls to coordinate with each other such that only one of the calls will actually run to completion.
std::once_flag is noncopyable.
| Contents | 
[edit] Member functions
std::once_flag::once_flag
| once_flag(); | ||
Constructs an once_flag object. The internal state is set to indicate that no function has been called yet.
Parameters
(none)
Exceptions
noexcept specification:  
noexcept
  [edit] See also
| (C++11) | invokes a function only once even if called from multiple threads (function template) |