Type traits | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Compile-time rational arithmetic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Compile-time integer sequences | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(C++14) |
Defined in header <type_traits> | ||
template<class T> struct is_array; | (since C++11) | |
std::is_array
is aUnaryTypeTrait.
Checks whetherT
is an array type. Provides the member constantvalue
which is equal totrue, ifT
is an array type. Otherwise,value
is equal tofalse.
If the program adds specializations forstd::is_array
orstd::is_array_v
, the behavior is undefined.
Contents |
T | - | a type to check |
template<class T> constexprbool is_array_v= is_array<T>::value; | (since C++17) | |
value [static] | true ifT is an array type,false otherwise(public static member constant) |
operator bool | converts the object tobool, returnsvalue (public member function) |
operator() (C++14) | returnsvalue (public member function) |
Type | Definition |
value_type | bool |
type | std::integral_constant<bool, value> |
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{}; |
#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(){}
(C++20) | checks if a type is an array type of known bound (class template)[edit] |
(C++20) | checks if a type is an array type of unknown bound (class template)[edit] |
(C++11) | obtains the number of dimensions of an array type (class template)[edit] |
(C++11) | obtains the size of an array type along a specified dimension (class template)[edit] |
(C++11) | removes one extent from the given array type (class template)[edit] |
(C++11) | removes all extents from the given array type (class template)[edit] |