extent 类 (C++ AMP)

表示一个包含 N 个整数值的向量,这些值指定以 0 为原点的 N 维空间的边界。 向量中的值按从最高有效到最低有效的顺序排列。

语法

template <int _Rank>
class extent;

参数

_Rank
extent 对象的排名。

要求

标头: amp.h

命名空间: 并发

成员

公共构造函数

名称 描述
extent 构造函数 初始化 extent 类的新实例。

公共方法

名称 描述
contains 验证指定的 extent 对象是否具有指定的排名。
size 返回盘区的总线性大小(以元素单位)。
tile 生成具有指定维度提供的磁贴盘区的 tiled_extent 对象。

公共运算符

“属性” 描述
operator- 返回通过从相应的 extent 元素减去 index 元素而创建的新 extent 对象。
operator-- 递减 extent 对象的每个元素。
operator%= 在元素除以某个数时,计算 extent 对象中每个元素的模数(余数)。
operator*= extent 对象的每个元素与某个数相乘。
operator/= extent 对象的每个元素除以某个数。
extent::operator[] 返回位于指定索引处的元素。
operator+ 返回通过添加相应的 indexextent 元素创建的新 extent 对象。
operator++ 递增 extent 对象的每个元素。
operator+= extent 对象的每个元素增加指定数字。
operator= 将另一 extent 对象的内容复制到此对象。
operator-= extent 对象的每个元素中减去指定的数字。

公共常量

“属性” 描述
rank 常量 获取 extent 对象的排名。

继承层次结构

extent

contains

指示指定的 index 值是否包含在 extent 对象中。

语法

bool contains(const index<rank>& _Index) const restrict(amp,cpu);

参数

_Index
要测试的 index 值。

返回值

如果指定的 index 值包含在 extent 对象中,则为 true;否则为 false

extent

初始化 extent 类的新实例。

语法

extent() restrict(amp,cpu);
extent(const extent<_Rank>& _Other) restrict(amp,cpu);
explicit extent(int _I) restrict(amp,cpu);
extent(int _I0,  int _I1) restrict(amp,cpu);
extent(int _I0,  int _I1, int _I2) restrict(amp,cpu);
explicit extent(const int _Array[_Rank])restrict(amp,cpu);

参数

_Array
用于创建新 extent 对象的 _Rank 整数数组。

_I
盘区的长度。

_I0
最高有效维度的长度。

_I1
仅次于最高有效维度的长度。

_I2
最低有效维度的长度。

_Other
extent 对象所基于的 extent 对象。

注解

默认构造函数会初始化排名为 3 的 extent 对象。

如果使用数组构造 extent 对象,则该数组的长度必须与 extent 对象的排名匹配。

operator%=

在元素除以某个数时,计算 extent 中每个元素的模数(余数)。

语法

extent<_Rank>& operator%=(int _Rhs) restrict(cpu, direct3d);

参数

_Rhs
要查找其模数的数字。

返回值

extent 对象。

operator*=

extent 对象中的每个元素乘以指定数字。

语法

extent<_Rank>& operator*=(int _Rhs) restrict(amp,cpu);

参数

_Rhs
要相乘的数字。

返回值

extent 对象。

operator+

返回通过添加相应的 indexextent 元素创建的新 extent 对象。

语法

extent<_Rank> operator+(const index<_Rank>& _Rhs) restrict(amp,cpu);

参数

_Rhs
包含要添加的元素的 index 对象。

返回值

新的 extent 对象。

operator++

递增 extent 对象的每个元素。

语法

extent<_Rank>& operator++() restrict(amp,cpu);
extent<_Rank> operator++(int)restrict(amp,cpu);

返回值

对于前缀运算符,是 extent 对象 (*this)。 对于后缀运算符,则是新的 extent 对象。

operator+=

extent 对象的每个元素增加指定数字。

语法

extent<_Rank>& operator+=(const extent<_Rank>& _Rhs) restrict(amp,cpu);
extent<_Rank>& operator+=(const index<_Rank>& _Rhs) restrict(amp,cpu);
extent<_Rank>& operator+=(int _Rhs) restrict(amp,cpu);

参数

_Rhs
要添加的数字、索引或盘区。

返回值

生成的 extent 对象。

operator-

通过从此 extent 对象中的相应元素中减去指定 index 对象中的每个元素来创建新的 extent 对象。

语法

extent<_Rank> operator-(const index<_Rank>& _Rhs) restrict(amp,cpu);

参数

_Rhs
包含要减去的元素的 index 对象。

返回值

新的 extent 对象。

operator--

递减 extent 对象中的每个元素。

语法

extent<_Rank>& operator--() restrict(amp,cpu);
extent<_Rank> operator--(int)restrict(amp,cpu);

返回值

对于前缀运算符,是 extent 对象 (*this)。 对于后缀运算符,则是新的 extent 对象。

operator/=

extent 对象中的每个元素除以指定的数字。

语法

extent<_Rank>& operator/=(int _Rhs) restrict(amp,cpu);

参数

_Rhs
要除以的数字。

返回值

extent 对象。

operator-=

extent 对象的每个元素中减去指定的数字。

语法

extent<_Rank>& operator-=(const extent<_Rank>& _Rhs) restrict(amp,cpu);
extent<_Rank>& operator-=(const index<_Rank>& _Rhs) restrict(amp,cpu);
extent<_Rank>& operator-=(int _Rhs) restrict(amp,cpu);

参数

_Rhs
要减去的数。

返回值

生成的 extent 对象。

operator=

将另一 extent 对象的内容复制到此对象。

语法

extent<_Rank>& operator=(const extent<_Rank>& _Other) restrict(amp,cpu);

参数

_Other
要从其复制的 extent 对象。

返回值

对此 extent 对象的引用。

extent::operator []

返回位于指定索引处的元素。

语法

int operator[](unsigned int _Index) const restrict(amp,cpu);
int& operator[](unsigned int _Index) restrict(amp,cpu);

参数

_Index
0 到秩减 1 之间的整数。

返回值

位于指定索引处的元素。

rank

存储 extent 对象的秩。

语法

static const int rank = _Rank;

大小

返回 extent 对象的总线性大小(以元素单位)。

语法

unsigned int size() const restrict(amp,cpu);

tile

生成具有指定磁贴维度的 tiled_extent 对象。

template <int _Dim0>
tiled_extent<_Dim0> tile() const ;

template <int _Dim0, int _Dim1>
tiled_extent<_Dim0, _Dim1> tile() const ;

template <int _Dim0, int _Dim1, int _Dim2>
tiled_extent<_Dim0, _Dim1, _Dim2> tile() const ;

参数

_Dim0
磁贴盘区中最重要的组件。 _Dim1
磁贴盘区中仅次于最重要组件的组件。 _Dim2
磁贴盘区中最不重要的组件。

另请参阅

并发命名空间 (C++ AMP)