<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


另見