Namespaces
Variants

operator== (std::layout_stride::mapping)

From zh.cppreference.net
template < class OtherMapping >

friend constexpr bool operator == ( const mapping & lhs,

const OtherMapping & rhs ) noexcept ;
(C++23 起)

基于底层维度和步长,比较两个可能具有不同布局类型的布局映射。

布局映射 lhs 和 rhs 在满足以下所有条件时被视为相等:

  • lhs. extents ( ) 与 rhs. extents ( ) 相等,
  • OFFSET ( rhs ) 等于 ​ 0 ​ ,且
  • 对于范围 [ ​ 0 ​ , lhs. extents ( ) . rank ( ) ) 内的每个秩索引 r , lhs. stride ( r ) 等于 rhs. stride ( r )

其中 OFFSET ( rhs ) 等于:

  • rhs ( ) ,若 rhs. extents ( ) . rank ( ) 为 ​ 0 ​ ,
  • 否则为 ​ 0 ​ ,若多维索引空间 rhs. extents ( ) 的大小为 ​ 0 ​ ,
  • 否则为 rhs ( z... ) ,其中整数包 z 是 rhs. extents ( ) 中的多维索引,且 z 的每个元素均等于 ​ 0 ​ 。

此重载仅在满足以下所有约束条件时参与重载决议:

  • 满足 layout-mapping-alike < OtherMapping > 要求,
  • rank_ == OtherMapping :: extents_type :: rank ( ) 为 true ,且
  • OtherMapping :: is_always_strided ( ) 为 true

( rank_ 是在 std :: layout_stride :: mapping 中定义的仅用于说明的静态成员常量。)

如果 OtherMapping 不满足 LayoutMapping 要求,则行为未定义。

目录

参数

lhs, rhs - 待比较范围与步长的布局映射对象

返回值

如果 lhs 和 rhs 均符合上述相等条件,则为 true ,否则为 false

示例

参见

比较 layout_left 的布局映射与其他映射
(函数模板)
比较 layout_right 的布局映射与其他映射
(函数模板)
(C++23)
比较两个 extents 在各维度上的底层范围
(函数)