std::in_place_t
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <optional> | ||
| struct in_place_t {}; | (since C++17) | |
std::in_place_t is an empty class type used to disambiguate the overloads of constructors and member functions of that take arguments (possibly a parameter pack) for in-place construction of some value.
[edit] See also
| in-place construction tag (class template) | |
| (since C++17) | a wrapper that may or may not hold an object (class template) | 


