Namespaces
Variants

std:: is_array

From cppreference.net
Metaprogramming library
Type traits
Type categories
(C++11)
(C++11) ( DR* )
is_array
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Type properties
(C++11)
(C++11)
(C++14)
(C++11) (deprecated in C++26)
(C++11) ( until C++20* )
(C++11) (deprecated in C++20)
(C++11)
Type trait constants
Metafunctions
(C++17)
Supported operations
Relationships and property queries
Type modifications
Type transformations
(C++11) (deprecated in C++23)
(C++11) (deprecated in C++23)
(C++11)
(C++11) ( until C++20* ) (C++17)

Compile-time rational arithmetic
Compile-time integer sequences
Definido en el encabezado <type_traits>
template < class T >
struct is_array ;
(desde C++11)

std::is_array es un UnaryTypeTrait .

Comprueba si T es un tipo array. Proporciona la constante miembro value que es igual a true , si T es un tipo array. De lo contrario, value es igual a false .

Si el programa añade especializaciones para std::is_array o std::is_array_v , el comportamiento es indefinido.

Contenidos

Parámetros de plantilla

T - un tipo a verificar

Plantilla de variable auxiliar

template < class T >
constexpr bool is_array_v = is_array < T > :: value ;
(desde C++17)

Heredado de std:: integral_constant

Constantes miembro

value
[static]
true si T es un tipo array, false en caso contrario
(constante miembro pública estática)

Funciones miembro

operator bool
convierte el objeto a bool , devuelve value
(función miembro pública)
operator()
(C++14)
devuelve value
(función miembro pública)

Tipos miembro

Tipo Definición
value_type bool
type std:: integral_constant < bool , value >

Implementación posible

template<class T>
struct is_array : std::false_type {};
template<class T>
struct is_array<T[]> : std::true_type {};
template<class T, std::size_t N>
struct is_array<T[N]> : std::true_type {};

Ejemplo

#include <array>
#include <type_traits>
class A {};
static_assert(std::is_array<A>::value == false);
static_assert(std::is_array<A[]>::value == true);
static_assert(std::is_array<A[3]>::value == true);
static_assert(std::is_array<float>::value == false);
static_assert(std::is_array<int>::value == false);
static_assert(std::is_array<int[]>::value == true);
static_assert(std::is_array<int[3]>::value == true);
static_assert(std::is_array<std::array<int, 3>>::value == false);
int main() {}

Véase también

verifica si un tipo es un tipo de array con límite conocido
(plantilla de clase)
verifica si un tipo es un tipo de array con límite desconocido
(plantilla de clase)
(C++11)
obtiene el número de dimensiones de un tipo de array
(plantilla de clase)
(C++11)
obtiene el tamaño de un tipo de array a lo largo de una dimensión especificada
(plantilla de clase)
elimina una extensión del tipo de array dado
(plantilla de clase)
elimina todas las extensiones del tipo de array dado
(plantilla de clase)