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
|
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) |
|
(C++23)
|
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
|
(C++23)
|
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) |