Defined in header <type_traits> | ||||
---|---|---|---|---|
| (since C++11) |
If T
is a multidimensional array of some type X
, provides the member typedef type
equal to X
, otherwise type
is T
.
Member types
Name | Definition |
---|---|
type | the type of the element of T |
Helper types
| (since C++14) |
Possible implementation
|
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> #include <type_traits> #include <typeinfo> template < class A> void foo( const A&) { typedef typename std::remove_all_extents<A>::type Type; std::cout << "underlying type: " << typeid (Type).name() << '\n' ; } int main() { float a1[1][2][3]; int a2[3][2]; float a3[1][1][1][1][2]; double a4[2][3]; foo(a1); foo(a2); foo(a3); foo(a4); } |
Output:
1 2 3 4 | underlying type: f underlying type: i underlying type: f underlying type: d |
See also
(C++11) | checks if a type is an array type (class template) |
(C++11) | obtains the number of dimensions of an array type (class template) |
(C++11) | obtains the size of an array type along a specified dimension (class template) |
(C++11) | removes one extent from the given array type (class template) |
Please login to continue.