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+ | 返回通过添加相应的 index 和 extent 元素创建的新 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+
返回通过添加相应的 index
和 extent
元素创建的新 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
磁贴盘区中最不重要的组件。