Namensräume
Varianten
Aktionen

std::layout_right::mapping

Von cppreference.com
< cpp‎ | container‎ | mdspan‎ | layout right
 
 
 
 
 
Definiert in Header <mdspan>
template< class Extents >
class layout_right::mapping;
(seit C++23)

Die Klassenschablone layout_right::mapping steuert, wie mehrdimensionale Indizes zeilenmajorartig in einen eindimensionalen Wert abgebildet werden, der den Offset darstellt. Das Mapping hat einen Schrittfaktor von 1 am rechtesten Extent und die Schrittfaktoren erhöhen sich von rechts nach links als Produkte der Extents.

Jede Spezialisierung von mapping ist ein LayoutMapping und ein TriviallyCopyable Typ, der regular erfüllt.

Das Programm ist schlecht geformt, wenn die Größe des mehrdimensionalen Indexraums Extents() nicht als Wert des Typs Extents::index_type darstellbar ist, wenn Extents::rank_dynamic() gleich 0 ist.

Inhalt

[bearbeiten] Schablonenparameter

Extents - gibt die Anzahl der Dimensionen, ihre Größen und welche zur Kompilierzeit bekannt sind, an. Muss eine Spezialisierung von std::extents sein.

[bearbeiten] Mitgliedstypen

Member-Name Definition
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_right

[bearbeiten] Datenmember

Mitglied Definition
extents_type extents_ (private) Das Extents-Objekt
((exposition-only member object*)

[bearbeiten] Mitgliedsfunktionen

konstruiert eine neue Abbildung
(public member function) [edit]
operator=
(explizit standardmäßig)
weist eine Abbildung zu
(public member function) [edit]
Observer
erhält das Extents-Objekt
(public member function) [edit]
gibt die erforderliche Größe der Abbildung zurück
(public member function) [edit]
bildet einen mehrdimensionalen Index auf einen Offset-Wert ab
(public member function) [edit]
[static]
bestimmt, ob diese Abbildung eindeutig ist (jede Kombination von Indizes wird auf ein anderes zugrunde liegendes Element abgebildet)
(public static member function) [edit]
bestimmt, ob diese Abbildung erschöpfend ist (jedes zugrunde liegende Element kann mit einer Kombination von Indizes zugegriffen werden)
(public static member function) [bearbeiten]
[static]
bestimmt, ob diese Abbildung gestuft ist (in jeder Dimension springt das Erhöhen eines Index jedes Mal über dieselbe Anzahl zugrunde liegender Elemente)
(public static member function) [edit]
bestimmt, ob diese Layout-Abbildung immer eindeutig ist
(public static member function) [edit]
bestimmt, ob diese Layout-Abbildung immer erschöpfend ist
(public static member function) [edit]
bestimmt, ob diese Layout-Abbildung immer gestuft ist
(public static member function) [edit]
erhält den Schritt entlang der angegebenen Dimension
(öffentliche Memberfunktion) [bearbeiten]

[bearbeiten] Nicht-Mitgliedsfunktionen

vergleicht diese Layout-Abbildung von layout_right mit einer anderen Abbildung
(function template) [edit]
berechnet das Mapping und den Daten-Handle-Offset, die für subdmspan verwendet werden
(public member function) [edit]

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

ein Layout-Mapping von layout_left
(öffentliche Member-Klassenschablone von std::layout_left)[bearbeiten]
ein Layout-Mapping von layout_stride
(öffentliche Member-Klassenschablone von std::layout_stride)[bearbeiten]