Espacios de nombres
Variantes
Acciones

std::rank

De cppreference.com
< cpp‎ | types
 
 
Biblioteca de servicios
 
Apoyo de tipos
Propiedades de tipos
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(hasta C++20)
(C++11)(en desuso en C++20)
(C++11)
Constantes de rasgos de tipos
Metafunciones
(C++17)
Contexto de evaluación constante
Operaciones soportadas
Relaciones y consultas de propiedades
Modificaciones de tipos
Transformaciones de tipos
(C++11)
(C++11)
(C++17)
(C++11)(hasta C++20)(C++17)
 
Definido en el archivo de encabezado <type_traits>
template<class T >
struct rank;
(desde C++11)

Si T es un tipo array, proporciona la constante miembro value igual al número de dimensiones del array. Para cualquier otro tipo, value es 0.

El comportamiento de un programa que añade especializaciones para ranko rank_v(desde C++17) no está definido.

Contenido

[editar]Plantilla de variable auxiliar

template<class T >
inlineconstexprstd::size_t rank_v = rank<T>::value;
(desde C++17)

Heredado de std::integral_constant

Constantes miembro

value
[estático]
el número de dimensiones de T o cero
(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_typestd::size_t
typestd::integral_constant<std::size_t, value>

[editar]Posible implementación

template<class T>struct rank :publicstd::integral_constant<std::size_t, 0>{};   template<class T>struct rank<T[]>:publicstd::integral_constant<std::size_t, rank<T>::value+1>{};   template<class T, std::size_t N>struct rank<T[N]>:publicstd::integral_constant<std::size_t, rank<T>::value+1>{};

[editar]Ejemplo

#include <iostream>#include <type_traits>   int main(){std::cout<< std::rank<int>{}<<"\n\n";   std::cout<< std::rank<int[5]>{}<<'\n';std::cout<< std::rank<int[5][5]>{}<<'\n';std::cout<< std::rank<int[][5][5]>{}<<'\n';}

Salida:

0   1 2 3

[editar]Véase también

(C++11)
Comprueba si un tipo es un tipo array
(plantilla de clase)[editar]
(C++11)
Obtiene el tamaño de un tipo array a lo largo de una dimensión especificada
(plantilla de clase)[editar]
Elimina una dimensión del tipo array dado
(plantilla de clase)[editar]
Elimina todas las dimensiones del tipo array dado
(plantilla de clase)[editar]
close