std::layout_stride::mapping
Von cppreference.com
< cpp | container | mdspan | layout stride
| Definiert in Header <mdspan> |
||
| template< class Extents > class layout_stride::mapping; |
(seit C++23) | |
Die Klassenschablone layout_stride::mapping steuert, wie mehrdimensionale Indizes mit benutzerdefinierten Strides auf einen eindimensionalen Wert abgebildet werden, der den Offset repräsentiert.
Jede Spezialisierung von mapping ist ein LayoutMapping und ein TriviallyCopyable Typ, der regular erfüllt.
Das Programm ist schlecht formuliert, wenn die Größe des mehrdimensionalen Indexraums Extents() nicht als Wert vom Typ Extents::index_type darstellbar ist, wenn Extents::rank_dynamic() 0 ist.
Inhalt |
[bearbeiten] Template-Parameter
| Extents | - | gibt die Anzahl der Dimensionen, ihre Größen und welche zur Kompilierzeit bekannt sind, an. Muss eine Spezialisierung von std::extents sein. |
[bearbeiten] Member-Typen
| Mitgliedertyp | 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_stride |
[bearbeiten] Member-Konstanten
| Mitglied | Definition |
constexpr rank_type rank_ (private) [static] |
extents_type::rank() ((exposition-only static member constant*) |
[bearbeiten] Datenmember
| Mitglied | Definition |
extents_type extents_ (private) |
Das Extents-Objekt ((exposition-only member object*) |
std::array<index_type, rank_> strides_ (private) |
das Array der Strides ((exposition-only member object*) |
[bearbeiten] Member-Funktionen
| konstruiert eine neue Abbildung (public member function) | |
| operator= (explizit standardmäßig) |
weist eine Abbildung zu (public member function) |
Observer | |
| erhält das Extents-Objekt (public member function) | |
| erhält das Array der Strides (public member function) | |
| gibt die erforderliche Größe der Abbildung zurück (public member function) | |
| bildet einen mehrdimensionalen Index auf einen Offset-Wert ab (public member function) | |
| [static] |
bestimmt, ob diese Abbildung eindeutig ist (jede Kombination von Indizes wird auf ein anderes zugrunde liegendes Element abgebildet) (public static member function) |
| bestimmt, ob diese Abbildung erschöpfend ist (jedes zugrunde liegende Element kann mit einer Kombination von Indizes zugegriffen werden) (public member function) | |
| [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) |
| [static] |
bestimmt, ob diese Layout-Abbildung immer eindeutig ist (public static member function) |
| [static] |
bestimmt, ob diese Layout-Abbildung immer erschöpfend ist (public static member function) |
| [static] |
bestimmt, ob diese Layout-Abbildung immer gestuft ist (public static member function) |
| erhält den Schritt entlang der angegebenen Dimension (öffentliche Memberfunktion) | |
[bearbeiten] Nicht-Member-Funktionen
vergleicht diese Layout-Abbildung von layout_stride mit einer anderen Abbildung(function template) | |
berechnet das Mapping und den Daten-Handle-Offset, die für subdmspan verwendet werden(public member function) |
[bearbeiten] Siehe auch
| ein Layout-Mapping von layout_left (öffentliche Member-Klassenschablone von std::layout_left) | |
| ein Layout-Mapping von layout_right (öffentliche Member-Klassenschablone von std::layout_right) |