Namespaces
Variants

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

From cppreference.net
template < class OtherMapping >

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

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

Vergleicht zwei Layout-Zuordnungen möglicherweise unterschiedlicher Layout-Typen basierend auf ihren zugrunde liegenden Extents und Strides.

Layout-Mappings lhs und rhs vergleichen gleich, wenn alle folgenden Bedingungen true sind:

  • sowohl lhs. extents ( ) als auch rhs. extents ( ) gleich sind,
  • OFFSET ( rhs ) gleich 0 ist, und
  • für jeden Rangindex r im Bereich [ 0 , lhs. extents ( ) . rank ( ) ) , lhs. stride ( r ) gleich rhs. stride ( r ) ist

Wo OFFSET ( rhs ) gleich ist:

  • rhs ( ) , falls rhs. extents ( ) . rank ( ) gleich 0 ist,
  • andernfalls 0 , falls die Größe des mehrdimensionalen Indexraums rhs. extents ( ) gleich 0 ist,
  • andernfalls rhs ( z... ) für eine Integer-Pack z , die ein mehrdimensionaler Index in rhs. extents ( ) ist und jedes Element von z gleich 0 ist.

Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn alle der folgenden Bedingungen erfüllt sind:

  • layout-mapping-alike < OtherMapping > erfüllt ist,
  • rank_ == OtherMapping :: extents_type :: rank ( ) true ist, und
  • OtherMapping :: is_always_strided ( ) true ist

( rank_ ist eine nur zur Darstellung dienende statische Member-Konstante, definiert in std :: layout_stride :: mapping .)

Wenn OtherMapping die LayoutMapping -Anforderungen nicht erfüllt, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

lhs, rhs - Layout-Mappings, deren Extents und Strides verglichen werden sollen

Rückgabewert

true wenn lhs und rhs beide wie oben angegeben gleich sind, false andernfalls

Beispiel

Siehe auch

vergleicht dieses Layout-Mapping von layout_left mit anderem Mapping
(Funktions-Template)
vergleicht dieses Layout-Mapping von layout_right mit anderem Mapping
(Funktions-Template)
(C++23)
vergleicht zugrundeliegende Extents in jeder Dimension zweier extents
(Funktion)