std::rank
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <type_traits>
  | 
||
|   template< class T > struct rank;  | 
(C++11 起) | |
若 T 是数组类型,则提供等于该数组维数的成员常量 value 。对于任何其他类型, value 为 0 。
添加 rank 或 rank_v (C++17 起) 的特化的程序行为未定义。
辅助变量模板
|   template< class T > inline constexpr std::size_t rank_v = rank<T>::value;  | 
(C++17 起) | |
继承自 std::integral_constant
成员常量
|    value [静态]  | 
    T 的维数或零  (公开静态成员常量)  | 
成员函数
|    operator std::size_t  | 
   转换对象为 std::size_t ,返回 value  (公开成员函数)  | 
|    operator() (C++14)  | 
   返回 value  (公开成员函数)  | 
成员类型
| 类型 | 定义 | 
  value_type
 | 
  std::size_t
 | 
  type
 | 
std::integral_constant<std::size_t, value> | 
可能的实现
template<class T> struct rank : public std::integral_constant<std::size_t, 0> {}; template<class T> struct rank<T[]> : public std::integral_constant<std::size_t, rank<T>::value + 1> {}; template<class T, std::size_t N> struct rank<T[N]> : public std::integral_constant<std::size_t, rank<T>::value + 1> {};  | 
示例
运行此代码
输出:
3 4 0
参阅
|    (C++11)  | 
   检查类型是否是数组类型   (类模板)  | 
|    (C++11)  | 
   获取数组类型在指定维度的大小   (类模板)  | 
|    (C++11)  | 
  从给定数组类型移除一个维度  (类模板)  | 
|    (C++11)  | 
   移除给定数组类型的所有维度   (类模板)  |