C++ named requirements: AccessorPolicy (since C++23)
AccessorPolicy définit comment les éléments sont accédés à partir d'un gestionnaire de données donné vers ces éléments et un index. Il est utilisé comme politique dans std:: mdspan pour spécifier l'accès à une référence d'un élément en utilisant un index 1D sous-jacent.
Table des matières |
Exigences
Un type
A
satisfait
AccessorPolicy
s'il modélise
copyable
, et que les éléments suivants sont
true
:
- std:: is_nothrow_move_constructible_v < A >
- std:: is_nothrow_move_assignable_v < A >
- std:: is_nothrow_swappable_v < A >
Et, étant donné les types et valeurs suivants, les expressions présentées dans le tableau ci-dessous sont valides et possèdent la sémantique indiquée :
Légende
| Type | Définition |
A
|
un type de politique d'accès |
OP
|
un type de politique de décalage |
| Valeur | Définition |
| a |
une valeur de type (éventuellement qualifié const)
A
|
| p |
une valeur de type (éventuellement qualifié const)
A::data_handle_type
|
| i , j , n | valeurs de type std:: size_t |
Types membres
| Type | Définition | Exigences |
|---|---|---|
A::element_type
|
non spécifié |
|
A::data_handle_type
|
non spécifié [1] |
|
A::reference
|
non spécifié [2] |
|
A::offset_policy
|
OP
|
|
Fonctions membres
| Expression | Type de retour | Sémantique |
|---|---|---|
| a. access ( p, i ) | typename A :: reference |
|
| a. offset ( p, i ) |
typename
A
::
offset_policy
::
data_handle_type
|
|
Plage accessible
Une plage d'indices
[
0
,
N
)
est une
plage accessible
d'un handle de données donné et d'un accesseur si, pour chaque indice dans la plage, la fonction membre
access
produit une référence valide vers un élément.
Bibliothèque standard
Les types de bibliothèque standard suivants satisfont les exigences AccessorPolicy :
|
(C++23)
|
un type pour l'accès indexé aux éléments de
mdspan
(modèle de classe) |
|
(C++26)
|
un type pour l'accès aligné aux éléments de
mdspan
(modèle de classe) |
|
Défini dans l'espace de noms
std::linalg
|
|
|
(C++26)
|
std::mdspan
politique d'accès dont la référence représente le produit d'un facteur d'échelle fixe et de la référence de son accesseur
std::mdspan
imbriqué
(modèle de classe) |
|
(C++26)
|
std::mdspan
politique d'accès dont la référence représente le conjugué complexe de la référence de son accesseur
std::mdspan
imbriqué
(modèle de classe) |