Espacios de nombres
Variantes
Acciones

std::tuple_element<std::array>

De cppreference.com
< cpp‎ | container‎ | array
 
 
 
 
Definido en el archivo de encabezado <array>
template<std::size_t I, class T, std::size_t N >
struct tuple_element< I, std::array<T, N>>;
(desde C++11)

Proporciona acceso de subíndice en tiempo de compilación al tipo de los elementos del array utilizando una interfaz similar a una tupla.

Contenido

[editar]Tipos miembro

Tipo miembro Definición
type El tipo de los elementos del array.

[editar]Posible implementación

template<std::size_t I, class T>struct tuple_element;   template<std::size_t I, class T, std::size_t N>struct tuple_element<I, std::array<T,N>>{using type = T;};

[editar]Ejemplo

#include <array>#include <iostream>#include <tuple>#include <type_traits>   int main(){// definir array y obtener el tipo del elemento en la posición 0std::array<int, 10> data {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};using T =std::tuple_element<0, decltype(data)>::type;// int   std::cout<<std::boolalpha;std::cout<<std::is_same<T, int>::value<<'\n';   constauto const_data = data;using CT =std::tuple_element<0, decltype(const_data)>::type;// const int   // el resultado de tuple_element depende de la calificación-cv// del tipo similar a una tuplastd::cout<<std::is_same<T, CT>::value<<'\n';std::cout<<std::is_same<CT, constint>::value<<'\n';}

Salida:

true false true

[editar]Véase también

Vínculo estructurado(C++17) Vincula los nombres especificados a subobjetos o elementos de una tupla del inicializador. [editar]
Obtiene el tipo del elemento especificado.
(especialización de plantilla de clase)[editar]
Obtiene el tipo de los elementos de un par.
(especialización de plantilla de clase)[editar]
close