std::layout_left::mapping

来自cppreference.com
< cpp‎ | container‎ | mdspan‎ | layout left
 
 
 
 
 
在标头 <mdspan> 定义
template< class Extents >
class layout_left::mapping;
(C++23 起)

类模板 layout_left::mapping 控制多维索引如何以列主序的方式映射为表示偏移的一维值。该映射的最左侧尺度步长为 1,且步长从左向右按尺度乘积增长。

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_left

成员对象

成员名字 定义
extents_ (私有) extents_type 类型的尺度。
(仅用于阐述的成员对象*)

成员函数

构造新映射
(公开成员函数)
赋值映射
(公开成员函数)
观察器
获取尺度对象
(公开成员函数)
返回映射所需大小
(公开成员函数)
将多维索引映射为一个偏移值
(公开成员函数)
[静态]
确定此映射是否是唯一的(每个索引组合都映射到不同的底层元素)
(公开静态成员函数)
确定此映射是否是穷尽的(每个底层元素都可被某个索引组合访问到)
(公开静态成员函数)
[静态]
确定此映射是否是跨步的
(公开静态成员函数)
确定此布局映射是否总是唯一的
(公开静态成员函数)
确定此布局映射是否总是穷尽的
(公开静态成员函数)
确定此布局映射是否总是跨步的
(公开静态成员函数)
获取沿指定维度的步长
(公开成员函数)

非成员函数

比较此布局映射和其他映射
(函数模板)
计算 subdmspan 所用的映射和数据句柄偏移
(公开成员函数)

参阅

layout_right 的布局映射
(std::layout_right 的公开成员类模板)
layout_stride 的布局映射
(std::layout_stride 的公开成员类模板)