Type traits | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Compile-time rational arithmetic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Compile-time integer sequences | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(C++14) |
Defined in header <type_traits> | ||
template<class T> struct is_unbounded_array; | (since C++20) | |
std::is_unbounded_array
is aUnaryTypeTrait.
Checks whetherT
is anarrays of unknown bound. Provides the member constantvalue which is equal totrue, ifT
is an array type of unknown bound. Otherwise,value is equal tofalse.
If the program adds specializations forstd::is_unbounded_array
orstd::is_unbounded_array_v
, the behavior is undefined.
Contents |
T | - | a type to check |
template<class T> constexprbool is_unbounded_array_v= is_unbounded_array<T>::value; | (since C++20) | |
value [static] | true ifT is an array type of unknown bound.,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_unbounded_array:std::false_type{}; template<class T>struct is_unbounded_array<T[]>:std::true_type{}; |
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_bounded_array_traits | 201902L | (C++20) | std::is_bounded_array,std::is_unbounded_array |
#include <type_traits> class A{}; static_assert(""&& std::is_unbounded_array_v<A>==false&& std::is_unbounded_array_v<A[]>==true&& std::is_unbounded_array_v<A[3]>==false&& std::is_unbounded_array_v<float>==false&& std::is_unbounded_array_v<int>==false&& std::is_unbounded_array_v<int[]>==true&& std::is_unbounded_array_v<int[3]>==false); int main(){}
(C++11) | checks if a type is an array type (class template)[edit] |
(C++20) | checks if a type is an array type of known bound (class template)[edit] |
(C++11) | obtains the size of an array type along a specified dimension (class template)[edit] |