Thư viện <type_traits> cung cấp các metafunction để kiểm tra và thao tác kiểu mảng tại compile-time.
is_array()
Kiểm tra kiểu có phải mảng không. Trả về true (1) hoặc false (0).
is_array<int>::value // False is_array<int[6]>::value // True is_array<int[2][3]>::value // True is_array<string>::value // False is_array<char[4]>::value // True
is_same()
Kiểm tra hai kiểu có hoàn toàn giống nhau không (kích thước, chiều, kiểu phần tử).
is_same<int[3], int[4]>::value // False (khac kich thuoc) is_same<int[5], int[5]>::value // True is_same<int[3], int[3][4]>::value // False (khac chieu) is_same<int[5], char[5]>::value // False (khac kieu phan tu)
rank()
Trả về số chiều (rank) của mảng.
rank<int>::value // 0 rank<int[5]>::value // 1 rank<int[2][2]>::value // 2 rank<int[2][3][4]>::value // 3
extent()
Trả về kích thước của một chiều cụ thể.
extent<int[2][45][5], 0>::value // 2 extent<int[2][45][5], 1>::value // 45 extent<int[2][45][5], 2>::value // 5 extent<int[2][45][5], 3>::value // 0 (vuot chieu)
remove_extent() / remove_all_extents()
Loại bỏ chiều đầu tiên hoặc tất cả chiều, trả về kiểu phần tử cơ bản.