std::nothrow_t
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <new> | ||
| struct nothrow_t {}; | (until C++11) | |
| struct nothrow_t { explicit nothrow_t() = default; }; | (since C++11) | |
std::nothrow_t is an empty class type used to disambiguate the overloads of throwing and non-throwing allocation functions.
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 2510 | C++11 | the default constructor was non-explicit, which could lead to ambiguity | made explicit | 
See also
| an object of type nothrow_tused to select an non-throwing allocation function(constant) | |
| allocation functions (function) |