<type_traits>

类模板
<type_traits>

std::extent

template <class T, unsigned I = 0> struct extent;
数组维度的范围

用于获取数组extent的特征类Ith维的类型T.

如果已知T是一个秩大于I的数组,则extent是该维度的界限(即元素的数量)。Ith维度。

在所有其他情况下,以及当I为零且T是未知界限的数组时,extent值为零。

此类继承自integral_constant

模板参数

T
一个类型。
I
要获取extent的维度。维度的索引从零开始。
如果省略,则默认为0

成员类型

继承自integral_constant
成员类型定义
value_type能够表示非负整数值的类型
类型的一个实例integral_constant

成员常量

继承自integral_constant
成员常量定义
extentIth维的T

成员函数

继承自integral_constant

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// array rank/extent example
#include <iostream>
#include <type_traits>

int main() {
  typedef int mytype[][24][60];
  std::cout << "mytype array (int[][24][60]):" << std::endl;
  std::cout << "rank: " << std::rank<mytype>::value << std::endl;
  std::cout << "extent (0th dimension): " << std::extent<mytype,0>::value << std::endl;
  std::cout << "extent (1st dimension): " << std::extent<mytype,1>::value << std::endl;
  std::cout << "extent (2nd dimension): " << std::extent<mytype,2>::value << std::endl;
  std::cout << "extent (3rd dimension): " << std::extent<mytype,3>::value << std::endl;
  return 0;
}

可能的输出
mytype array (int[][24][60]):
rank: 3
extent (0th dimension): 0
extent (1st dimension): 24
extent (2nd dimension): 60
extent (3rd dimension): 0


另见