Namensräume
Varianten
Aktionen

C++ benannte Anforderungen: AccessorPolicy (seit C++23)

Von cppreference.com
 
 
C++ benannte Anforderungen
 

AccessorPolicy definiert, wie auf Elemente von einem gegebenen Datenhandle zu solchen Elementen und einem Index zugegriffen wird. Sie wird als Richtlinie in std::mdspan verwendet, um den Zugriff auf eine Referenz eines Elements mithilfe eines zugrunde liegenden eindimensionalen Indexes anzugeben.

Inhalt

[bearbeiten] Anforderungen

Ein Typ A erfüllt AccessorPolicy, wenn er copyable modelliert und Folgendes gilt true

Und, unter den folgenden Typen und Werten, sind die in der folgenden Tabelle gezeigten Ausdrücke gültig und haben die angegebene Semantik

[bearbeiten] Legende

Typ Definition
A ein Accessor-Policy-Typ
OP ein Offset-Policy-Typ
Wert Definition
a ein Wert vom Typ (möglicherweise const-qualifiziert) A
p ein Wert vom Typ (möglicherweise const-qualifiziert) A::data_handle_type
i, j, n Werte vom Typ std::size_t

[bearbeiten] Member-Typen

Name Typ Anforderungen
A::element_type (nicht spezifiziert)
  • Ein vollständiger Objekttyp, der kein abstrakter Klassentyp ist
A::data_handle_type (nicht spezifiziert), aber der Typ muss nicht element_type* sein
  • Modelliert copyable
  • Die folgenden Bedingungen sind alle true
A::reference (nicht spezifiziert), aber der Typ muss nicht element_type& sein
A::offset_policy OP
  • Erfüllt die Anforderungen von AccessorPolicy
  • std::constructible_from<OP, const A&> ist true
  • typename OP​::​element_type und typename A​::​element_type sind derselbe Typ

[bearbeiten] Memberfunktionen

Ausdruck Rückgabetyp Semantik
a.access(p, i) typename A::reference
a.offset(p, i) typename A::offset_policy::data_handle_type
  • Ein Wert q, so dass für b, das A::offset_policy(a) ist, und jede ganze Zahl n, für die [0n) ein zugänglicher Bereich[Anm. 1] von p und a ist.
  • [0n - i) ein zugänglicher Bereich von q und b ist; und
  • b.access(q, j) Zugriff auf dasselbe Element wie a.access(p, i + j) bietet, für jedes j im Bereich [0n - i).
  1. Ein Bereich von Indizes [0N) ist ein zugänglicher Bereich eines gegebenen Datenhandles und eines Accessors, wenn für jeden Index im Bereich die `access`-Memberfunktion eine gültige Referenz auf ein Element erzeugt.

[bearbeiten] Standardbibliothek

Die folgenden Standardbibliothekstypen erfüllen die Anforderungen von AccessorPolicy

ein Typ für den indizierten Zugriff auf Elemente von mdspan
(class template) [edit]
ein Typ für den ausgerichteten Zugriff auf Elemente von mdspan
(class template) [edit]
Definiert im Namespace std::linalg
std::mdspan Accessor-Richtlinie, deren Referenz das Produkt eines festen Skalierungsfaktors und der Referenz des verschachtelten std::mdspan Accessors darstellt
(Klassenschablone) [bearbeiten]
std::mdspan Accessor-Richtlinie, deren Referenz die komplexe Konjugation der Referenz des verschachtelten std::mdspan Accessors darstellt
(Klassenschablone) [bearbeiten]