std:: extents, std:: dextents, std:: dims
From cppreference.net
|
Definiert im Header
<mdspan>
|
||
|
template
<
class
IndexType,
std::
size_t
...
Extents
>
class extents ; |
(1) | (seit C++23) |
|
template
<
class
IndexType,
std::
size_t
Rank
>
using dextents = /* siehe unten */ |
(2) | (seit C++23) |
|
template
<
std::
size_t
Rank,
class
IndexType
=
std::
size_t
>
using dims = std :: dextents < IndexType, Rank > ; |
(3) | (seit C++26) |
1)
Repräsentiert einen mehrdimensionalen Indexraum mit einem Rang gleich
sizeof...
(
Extents
)
.
2)
Ein praktisches Alias-Template für eine vollständig dynamische
extents
. Sei
d
für
std::
dynamic_extent
, jede Spezialisierung davon
dextents
<
IndexType, Rank
>
ist äquivalent zu
extents
<
IndexType
/*, d, d, ..., d*/
>
(d.h.
d
wird insgesamt
Rank
Mal wiederholt).
3)
Eine praktische Alias-Vorlage für eine vollständig dynamische
extents
mit
std::
size_t
als Standard-Indextyp.
Jede Spezialisierung von
extents
modelliert
regular
und ist
TriviallyCopyable
.
Inhaltsverzeichnis |
Template-Parameter
| IndexType | - |
der Typ jedes nicht-dynamischen
Extents
. Soll ein vorzeichenbehafteter oder vorzeichenloser Ganzzahltyp sein. Andernfalls ist das Programm fehlerhaft
|
| Extents | - |
repräsentiert die Extent (Größe eines ganzzahligen Intervalls) für jeden Rangindex. Jedes Element davon ist entweder gleich
std::
dynamic_extent
(in diesem Fall repräsentiert es einen
dynamischen Extent
und die Extent-Größe wird dynamisch bestimmt), oder ist als Wert vom Typ
IndexType
darstellbar (dann repräsentiert es einen
statischen Extent
und die Extent-Größe ist genau sein Wert), andernfalls ist das Programm fehlerhaft
|
| Rank | - |
bezeichnet den Rang eines vollständig dynamischen
extents
|
Mitgliedertypen
| Mitgliedertyp | Definition |
index_type
|
IndexType
|
size_type
|
std:: make_unsigned_t < index_type > |
rank_type
|
std::size_t |
Datenmitglieder
| Mitgliedername | Definition |
std::
array
<
index_type, rank_dynamic
(
)
>
dynamic-extents
(privat)
|
Ein Array, das die Größe jedes dynamischen Extents speichert.
( Nur zur Darstellung verwendetes Mitgliedsobjekt* ) |
Memberfunktionen
konstruiert ein
extents
(öffentliche Member-Funktion) |
|
Beobachter |
|
|
[static]
|
gibt den statischen Rang eines
extents
zurück
(öffentliche statische Member-Funktion) |
|
[static]
|
gibt den dynamischen Rang eines
extents
zurück
(öffentliche statische Member-Funktion) |
|
[static]
|
gibt die statische Extent-Größe eines
extents
an einem bestimmten Rang-Index zurück
(öffentliche statische Member-Funktion) |
gibt die dynamische Extent-Größe eines
extents
an einem bestimmten Rang-Index zurück
(öffentliche Member-Funktion) |
|
Hilfsfunktionen |
|
gibt das Produkt der Extent-Größen im Bereich
[
0
,
i
)
zurück
( Nur zur Darstellung verwendete Member-Funktion* ) |
|
gibt das Produkt der Extent-Größen im Bereich
[
i
+
1
,
rank
(
)
)
zurück
( Nur zur Darstellung verwendete Member-Funktion* ) |
|
|
konvertiert die Eingabe in einen Integer-Typ
( Nur zur Darstellung verwendete Member-Funktion* ) |
|
|
(privat)
|
gibt die Anzahl der dynamischen Extents unter einem bestimmten Rang-Index zurück
( Nur zur Darstellung verwendete Member-Funktion* ) |
|
(privat)
|
gibt die Zahl
r
zurück, so dass im Bereich
[
0
,
r
+
1
)
genau
i + 1
dynamische Extents für ein bestimmtes Argument
i
vorhanden sind
( Nur zur Darstellung verwendete Member-Funktion* ) |
Nicht-Member-Funktionen
|
(C++23)
|
vergleicht die zugrundeliegenden Extents in jeder Dimension von zwei
extents
(Funktion) |
Ableitungsleitfäden (C++23)
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++11)
|
ermittelt die Anzahl der Dimensionen eines Array-Typs
(Klassen-Template) |
|
(C++11)
|
ermittelt die Größe eines Array-Typs entlang einer bestimmten Dimension
(Klassen-Template) |