Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | container‎ | mdspan‎ | layout stride‎ | mapping
 
 
 
 
 
template< class OtherMapping >

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

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

Vergleicht zwei Layout-Mappings von möglicherweise unterschiedlichen Layout-Typen anhand ihrer zugrunde liegenden Extents und Strides.

Die Layout-Mappings lhs und rhs sind gleich, wenn alle folgenden Bedingungen wahr sind:

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

Wobei OFFSET(rhs) gleich

  • rhs() ist, wenn rhs.extents().rank() 0 ist,
  • andernfalls 0, wenn die Größe des multidimensionalen Indexraums rhs.extents() 0 ist,
  • andernfalls rhs(z...) für ein Pack von Ganzzahlen z, das ein multidimensionaler Index in rhs.extents() ist und jedes Element von z gleich 0 ist.

Dieser Überladungsaufruf nimmt nur an der Auflösung von Überladungsaufrufen teil, wenn alle folgenden Einschränkungen erfüllt sind:

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

(rank_ ist eine exposition-only statische Member-Konstante, die in std::layout_stride::mapping definiert ist.)

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

Inhalt

[bearbeiten] Parameter

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

[bearbeiten] Rückgabewert

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

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

vergleicht diese Layout-Abbildung von layout_left mit einer anderen Abbildung
(function template) [edit]
vergleicht diese Layout-Abbildung von layout_right mit einer anderen Abbildung
(function template) [edit]
vergleicht die zugrunde liegenden Ausdehnungen in jeder Dimension von zwei extents
(function) [edit]