std::layout_stride::mapping
来自cppreference.com
< cpp | container | mdspan | layout stride
| 在标头 <mdspan> 定义
|
||
| template< class Extents > class layout_stride::mapping; |
(C++23 起) | |
类模板 layout_stride::mapping 控制多维索引如何以用户定义的步长映射为表示偏移的一维值。
mapping 的每个特化都是布局映射 (LayoutMapping) ,并且是满足 regular 的可平凡复制 (TriviallyCopyable) 类型。
如果多维索引空间 Extents() 的大小在 Extents::rank_dynamic() 为 0 时不能表示为 Extents::index_type 类型的值,则程序非良构。
模板形参
| Extents | - | 指定编译时已知的维度数量和它们的大小。必须是 std::extents 的特化。
|
成员类型
| 成员类型 | 定义 |
extents_type
|
Extents
|
index_type
|
extents_type::index_type
|
size_type
|
extents_type::size_type
|
rank_type
|
extents_type::rank_type
|
layout_type
|
std::layout_stride |
成员常量
| 成员 | 定义 |
constexpr rank_type rank_ (私有)[静态]
|
extents_type::rank() (仅用于阐述的静态成员常量*) |
成员对象
| 成员名字 | 定义 |
extents_ (私有)
|
extents_type 类型的尺度。(仅用于阐述的成员对象*) |
strides_ (私有)
|
std::array<index_type, rank_> 类型的步长。(仅用于阐述的成员对象*) |
成员函数
| 构造新映射 (公开成员函数) | |
| 赋值映射 (公开成员函数) | |
观察器 | |
| 获取尺度对象 (公开成员函数) | |
| 获得步长的数组 (公开成员函数) | |
| 返回映射所需大小 (公开成员函数) | |
| 将多维索引映射为一个偏移值 (公开成员函数) | |
| [静态] |
确定此映射是否是唯一的(每个索引组合都映射到不同的底层元素) (公开静态成员函数) |
| 确定此映射是否是穷尽的(每个底层元素都可被某个索引组合访问到) (公开成员函数) | |
| [静态] |
确定此映射是否是跨步的 (公开静态成员函数) |
| [静态] |
确定此布局映射是否总是唯一的 (公开静态成员函数) |
| 确定此布局映射是否总是穷尽的 (公开静态成员函数) | |
| 确定此布局映射是否总是跨步的 (公开静态成员函数) | |
| 获取沿指定维度的步长 (公开成员函数) | |
非成员函数
| 比较此布局映射和其他映射 (函数模板) | |
计算 subdmspan 所用的映射和数据句柄偏移 (公开成员函数) |
参阅
| layout_left 的布局映射 ( std::layout_left 的公开成员类模板) | |
| layout_right 的布局映射 ( std::layout_right 的公开成员类模板) |