命名空间
变体
操作

std::layout_left::mapping

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

类模板 layout_left::mapping 控制着多维索引如何以列优先的方式映射到代表偏移量的一维值。映射在最左侧维度上的步幅为 1,步幅从左到右随着维度的乘积而增加。

mapping 的每个特化都是 LayoutMapping 和一个 TriviallyCopyable 类型,它满足 regular

如果多维索引空间 Extents() 的大小不能表示为类型 Extents::index_type 的值,则程序是非良构的,当 Extents::rank_dynamic()0 时。

内容

[编辑] 模板形参

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_type extents_ (private) extents 对象
(仅用于演示的成员对象*)

[编辑] 成员函数

构造一个新的映射
(public 成员函数) [编辑]
operator=
(显式预置)
赋值一个映射
(public 成员函数) [编辑]
观察器
获取 extents 对象
(public 成员函数) [编辑]
返回映射的所需大小
(public 成员函数) [编辑]
将多维索引映射为偏移值
(public 成员函数) [编辑]
[静态]
确定此映射是否是唯一的(索引的每个组合都映射到不同的底层元素)
(public 静态成员函数) [编辑]
确定此映射是否是穷尽的(每个底层元素都可以通过索引的某些组合来访问)
(public 静态成员函数) [编辑]
[静态]
确定此映射是否是跨步的(在每个维度中,递增索引每次都跳过相同数量的底层元素)
(public 静态成员函数) [编辑]
确定此布局映射是否始终是唯一的
(public 静态成员函数) [编辑]
确定此布局映射是否始终是穷尽的
(public 静态成员函数) [编辑]
确定此布局映射是否始终是跨步的
(public 静态成员函数) [编辑]
获取沿指定维度的步幅
(public 成员函数) [编辑]

[编辑] 非成员函数

比较 layout_left 的此布局映射与其他映射
(函数模板) [编辑]
计算用于 subdmspan 的映射和数据句柄偏移量
(public 成员函数) [编辑]

[编辑] 参见

layout_right 的布局映射
(std::layout_right 的 public 成员类模板)[编辑]
layout_stride 的布局映射
(std::layout_stride 的 public 成员类模板)[编辑]