Namespaces
Variants

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.net
Utilities library
Definido en el encabezado <utility>
struct in_place_t { explicit in_place_t ( ) = default ; } ;
(1) (desde C++17)
inline constexpr std :: in_place_t in_place { } ;
(2) (desde C++17)
template < class T >
struct in_place_type_t { explicit in_place_type_t ( ) = default ; } ;
(3) (desde C++17)
template < class T >
constexpr std :: in_place_type_t < T > in_place_type { } ;
(4) (desde C++17)
template < std:: size_t I >
struct in_place_index_t { explicit in_place_index_t ( ) = default ; } ;
(5) (desde C++17)
template < std:: size_t I >
constexpr std :: in_place_index_t < I > in_place_index { } ;
(6) (desde C++17)
1,3,5) Las plantillas de tipos/tipos std::in_place_t , std::in_place_type_t y std::in_place_index_t pueden utilizarse en la lista de parámetros del constructor para coincidir con la etiqueta prevista.
2,4,6) Las instancias correspondientes std::in_place , std::in_place_type , y std::in_place_index de (1,3,5) son etiquetas de desambiguación que pueden pasarse a los constructores para indicar que el objeto contenido debe construirse in situ, y (para las dos últimas) el tipo del objeto que se va a construir.

Biblioteca estándar

Los siguientes tipos de la biblioteca estándar utilizan (1-6) como etiquetas de desambiguación:

(C++17)
objetos que contienen instancias de cualquier tipo CopyConstructible
(clase)
(C++23)
un contenedor que contiene un valor esperado o un error
(plantilla de clase)
contenedor no copiable de cualquier objeto invocable que soporta calificadores en una firma de llamada dada
(plantilla de clase)
(C++17)
un contenedor que puede o no contener un objeto
(plantilla de clase)
(C++17)
una unión discriminada type-safe
(plantilla de clase)

Véase también

indica que los elementos de un rango están ordenados y son únicos
(etiqueta)
indica que los elementos de un rango están ordenados (no se requiere unicidad)
(etiqueta)