std::tuple_size<std::pair>
De cppreference.com
| Definido en el archivo de encabezado <utility>
|
||
template <class T1, class T2>
struct tuple_size<std::pair<T1, T2>>
: std::integral_constant<std::size_t, 2> { };
|
(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 una sintaxis similar a una tupla.
Sumario
Heredado de std::integral_constant
Constantes miembro
value [estático] |
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
Ejecuta este código
#include <iostream>
#include <utility>
#include <tuple>
template<class T>
void test(T t)
{
int a[std::tuple_size<T>::value]; // puede usarse 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 de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2313 | C++11 | No se requería que las especializaciones para pair se derivaran de integral_constant
|
Se requiere. |
Véase también
| Vínculo estructurado (C++17) | Vincula los nombres especificados a subobjetos o elementos de una tupla del inicializador. |
| Obtiene el tamaño de una tupla en tiempo de compilación. (especialización de plantilla de clase) | |
obtiene el tamaño de un array Original: obtains the size of an array The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (especialización de plantilla de clase) | |
| Obtiene el tipo de los elementos de un par. (especialización de plantilla de clase) |