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 neither copyable nor movable.
Contents | 
[edit] Member functions
std::once_flag::once_flag
|   constexpr 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)  |