std:: extents, std:: dextents, std:: dims
From cppreference.net
|
定义于头文件
<mdspan>
|
||
|
template
<
class
IndexType,
std::
size_t
...
Extents
>
class extents ; |
(1) | (C++23 起) |
|
template
<
class
IndexType,
std::
size_t
Rank
>
using dextents = /* 见下文 */ |
(2) | (C++23 起) |
|
template
<
std::
size_t
Rank,
class
IndexType
=
std::
size_t
>
using dims = std :: dextents < IndexType, Rank > ; |
(3) | (C++26 起) |
1)
表示一个多维索引空间,其秩等于
sizeof...
(
Extents
)
。
2)
用于全动态
extents
的便捷别名模板。令
d
表示
std::
dynamic_extent
,其每个特化
dextents
<
IndexType, Rank
>
等价于
extents
<
IndexType
/*, d, d, ..., d*/
>
(即
d
总共重复
Rank
次)。
每个
extents
的特化都建模
regular
概念,并且是
TriviallyCopyable
类型。
目录 |
模板参数
| IndexType | - |
每个非动态
Extents
的类型。应为有符号或无符号整数类型,否则程序非良构
|
| Extents | - |
表示每个秩索引的区间大小。其每个元素要么等于
std::
dynamic_extent
(此时表示动态区间,区间大小将在运行时确定),要么可表示为
IndexType
类型的值(此时表示静态区间,区间大小即为该值),否则程序非良构
|
| Rank | - |
表示全动态
extents
的秩
|
成员类型
| 成员类型 | 定义 |
index_type
|
IndexType
|
size_type
|
std:: make_unsigned_t < index_type > |
rank_type
|
std::size_t |
数据成员
| 成员名称 | 定义 |
std::
array
<
index_type, rank_dynamic
(
)
>
dynamic-extents
(私有)
|
存储各动态维度大小的数组。
( 仅用于说明的成员对象* ) |
成员函数
构造一个
extents
(公开成员函数) |
|
观察器 |
|
|
[静态]
|
返回
extents
的静态秩
(公开静态成员函数) |
|
[静态]
|
返回
extents
的动态秩
(公开静态成员函数) |
|
[静态]
|
返回
extents
在特定秩索引处的静态范围大小
(公开静态成员函数) |
返回
extents
在特定秩索引处的动态范围大小
(公开成员函数) |
|
辅助函数 |
|
返回范围
[
0
,
i
)
内范围大小的乘积
( 仅用于说明的成员函数* ) |
|
返回范围
[
i
+
1
,
rank
(
)
)
内范围大小的乘积
( 仅用于说明的成员函数* ) |
|
|
将输入转换为整数类型
( 仅用于说明的成员函数* ) |
|
|
(私有)
|
返回特定秩索引以下的动态范围数量
( 仅用于说明的成员函数* ) |
|
(私有)
|
返回数值
r
,使得在范围
[
0
,
r
+
1
)
内恰好存在
i + 1
个动态范围(针对特定参数
i
)
( 仅用于说明的成员函数* ) |
非成员函数
|
(C++23)
|
比较两个
extents
在各维度上的底层范围
(函数) |
推导指引 (C++23)
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(C++11)
|
获取数组类型的维度数量
(类模板) |
|
(C++11)
|
获取数组类型在指定维度上的大小
(类模板) |