std:: tuple_size <std::pair>
|
Definido en el encabezado
<utility>
|
||
|
template
<
class
T1,
class
T2
>
struct
tuple_size
<
std::
pair
<
T1, T2
>>
|
(desde C++11) | |
La especialización parcial de std:: tuple_size para pares proporciona una forma en tiempo de compilación de obtener el número de elementos en un par, que siempre es 2, utilizando sintaxis similar a tuplas.
Contenidos |
Heredado de std:: integral_constant
Constantes miembro
|
value
[static]
|
el valor constante 2
(constante miembro pública estática) |
Funciones miembro
|
operator std::size_t
|
convierte el objeto a
std::
size_t
, devuelve
value
(función miembro pública) |
|
operator()
(C++14)
|
devuelve
value
(función miembro pública) |
Tipos miembro
| Tipo | Definición |
value_type
|
std:: size_t |
type
|
std:: integral_constant < std:: size_t , value > |
Ejemplo
#include <iostream> #include <tuple> #include <utility> template<class T> void test([[maybe_unused]]T t) { [[maybe_unused]] int a[std::tuple_size<T>::value]; // se puede usar en tiempo de compilación std::cout << std::tuple_size<T>::value << '\n'; // o en tiempo de ejecución } int main() { test(std::make_tuple(1, 2, 3.14)); test(std::make_pair(1, 3.14)); }
Salida:
3 2
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2313 | C++11 |
las especializaciones para
pair
no estaban requeridas a derivar de
integral_constant
|
requerido |
Véase también
| Structured binding (C++17) | vincula los nombres especificados a subobjetos o elementos de tupla del inicializador |
|
(C++11)
|
obtiene el número de elementos de un tipo similar a tupla
(plantilla de clase) |
|
(C++11)
|
obtiene el tamaño de un
array
(especialización de plantilla de clase) |
|
(C++11)
|
obtiene el tamaño de
una
|
|
obtiene el tamaño de un
std::ranges::subrange
(especialización de plantilla de clase) |
|
|
(C++11)
|
obtiene el tipo de los elementos de
pair
(especialización de plantilla de clase) |