std:: in_place, std:: in_place_type, std:: in_place_index, std:: in_place_t, std:: in_place_type_t, std:: in_place_index_t

From cppreference.com
Utilities library
General utilities
Relational operators (deprecated in C++20)
Defined in header <utility>
struct in_place_t { explicit in_place_t ( ) = default ; } ;
(1) (since C++17)
inline constexpr std :: in_place_t in_place { } ;
(2) (since C++17)
template < class T >
struct in_place_type_t { explicit in_place_type_t ( ) = default ; } ;
(3) (since C++17)
template < class T >
constexpr std :: in_place_type_t < T > in_place_type { } ;
(4) (since C++17)
template < std:: size_t I >
struct in_place_index_t { explicit in_place_index_t ( ) = default ; } ;
(5) (since C++17)
template < std:: size_t I >
constexpr std :: in_place_index_t < I > in_place_index { } ;
(6) (since C++17)
1,3,5) The type/type templates std::in_place_t , std::in_place_type_t and std::in_place_index_t can be used in the constructor's parameter list to match the intended tag.
2,4,6) The corresponding std::in_place , std::in_place_type , and std::in_place_index instances of (1,3,5) are disambiguation tags that can be passed to the constructors to indicate that the contained object should be constructed in-place, and (for the latter two) the type of the object to be constructed.

Standard library

The following standard library types use (1-6) as disambiguation tags:

(C++17)
objects that hold instances of any CopyConstructible type
(class)
(C++23)
a wrapper that contains either an expected or error value
(class template)
move-only wrapper of any callable object that supports qualifiers in a given call signature
(class template)
(C++17)
a wrapper that may or may not hold an object
(class template)
(C++17)
a type-safe discriminated union
(class template)

See also

indicates that elements of a range are sorted and unique
(tag)
indicates that elements of a range are sorted (uniqueness is not required)
(tag)