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
Défini dans l'en-tête <type_traits>
template < class T >
struct is_array ;
(depuis C++11)

std::is_array est un UnaryTypeTrait .

Vérifie si T est un type tableau. Fournit la constante membre value qui est égale à true , si T est un type tableau. Sinon, value est égale à false .

Si le programme ajoute des spécialisations pour std::is_array ou std::is_array_v , le comportement est indéfini.

Table des matières

Paramètres du modèle

T - un type à vérifier

Modèle de variable d'assistance

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

Hérité de std:: integral_constant

Constantes membres

value
[static]
true si T est un type tableau, false sinon
(constante membre publique statique)

Fonctions membres

operator bool
convertit l'objet en bool , retourne value
(fonction membre publique)
operator()
(C++14)
retourne value
(fonction membre publique)

Types membres

Type Définition
value_type bool
type std:: integral_constant < bool , value >

Implémentation possible

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 {};

Exemple

#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() {}

Voir aussi

vérifie si un type est un type tableau de taille connue
(modèle de classe)
vérifie si un type est un type tableau de taille inconnue
(modèle de classe)
(C++11)
obtient le nombre de dimensions d'un type tableau
(modèle de classe)
(C++11)
obtient la taille d'un type tableau selon une dimension spécifiée
(modèle de classe)
supprime une dimension du type tableau donné
(modèle de classe)
supprime toutes les dimensions du type tableau donné
(modèle de classe)