Namespaces
Variants

C++ named requirements: AccessorPolicy (since C++23)

From cppreference.net
C++ named requirements

AccessorPolicy definiert, wie Elemente aus einem gegebenen Datenhandle zu solchen Elementen und einem Index zugriffen werden. Es wird als Policy in std:: mdspan verwendet, um den Zugriff auf eine Referenz eines Elements unter Verwendung eines zugrundeliegenden 1D-Index zu spezifizieren.

Inhaltsverzeichnis

Anforderungen

Ein Typ A erfüllt AccessorPolicy , wenn er das Konzept copyable modelliert und die folgenden Ausdrücke true ergeben:

**Anmerkung:** Da der gesamte Inhalt innerhalb von HTML-Tags und C++-Code liegt, wurde gemäß den Anforderungen kein Text übersetzt. Die C++-spezifischen Begriffe und Code-Elemente bleiben unverändert.

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

Legende

Typ Definition
A ein Zugriffspolicy-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

Mitgliedertypen

Typ Definition Anforderungen
A::element_type nicht spezifiziert
  • Ein vollständiger Objekttyp, der kein abstrakter Klassentyp ist
A::data_handle_type nicht spezifiziert [1]
  • Modelliert copyable
  • Die folgenden Werte sind alle true :
A::reference nicht spezifiziert [2]
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
  1. Muss nicht element_type * sein.
  2. Muss nicht element_type & sein.

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 , sodass für b als A :: offset_policy ( a ) und jede Ganzzahl n , für die [ 0 , n ) ein zugänglicher Bereich (siehe unten) von p und a ist.
  • [ 0 , n - i ) ein zugänglicher Bereich von q und b ist; und
  • b. access ( q, j ) Zugriff auf dasselbe Element bietet wie a. access ( p, i + j ) , für jedes j im Bereich [ 0 , n - i ) .

Zugänglicher Bereich

Ein Bereich von Indizes [ 0 , N ) 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.

Standardbibliothek

Die folgenden Standardbibliothekstypen erfüllen die AccessorPolicy -Anforderungen:

ein Typ für indizierten Zugriff auf Elemente von mdspan
(Klassentemplate)
ein Typ für ausgerichteten Zugriff auf Elemente von mdspan
(Klassentemplate)
Definiert im Namensraum std::linalg
std::mdspan Zugriffsrichtlinie, deren Referenz das Produkt eines festen Skalierungsfaktors und der Referenz ihres verschachtelten std::mdspan Zugriffsobjekts darstellt
(Klassentemplate)
std::mdspan Zugriffsrichtlinie, deren Referenz die komplex Konjugierte der Referenz ihres verschachtelten std::mdspan Zugriffsobjekts darstellt
(Klassentemplate)