C++ named requirements: AccessorPolicy (since C++23)
AccessorPolicy определяет, как элементы получаются из данного дескриптора данных таких элементов и индекса. Он используется как политика в std:: mdspan для указания доступа к ссылке на элемент с использованием базового одномерного индекса.
Содержание |
Требования
Тип
A
удовлетворяет
AccessorPolicy
, если он моделирует
copyable
, и следующие условия являются
true
:
- std:: is_nothrow_move_constructible_v < A >
- std:: is_nothrow_move_assignable_v < A >
- std:: is_nothrow_swappable_v < A >
И, учитывая следующие типы и значения, выражения, приведенные в таблице ниже, являются допустимыми и имеют указанную семантику:
Легенда
| Тип | Определение |
A
|
тип политики доступа |
OP
|
тип политики смещения |
| Значение | Определение |
| a |
значение типа (возможно const-квалифицированного)
A
|
| p |
значение типа (возможно const-квалифицированного)
A::data_handle_type
|
| i , j , n | значения типа std:: size_t |
Типы членов
| Тип | Определение | Требования |
|---|---|---|
A::element_type
|
не указано |
|
A::data_handle_type
|
не указано [1] |
|
A::reference
|
не указано [2] |
|
A::offset_policy
|
OP
|
|
Функции-члены
| Выражение | Тип возвращаемого значения | Семантика |
|---|---|---|
| a. access ( p, i ) | typename A :: reference |
|
| a. offset ( p, i ) |
typename
A
::
offset_policy
::
data_handle_type
|
|
Доступный диапазон
Диапазон индексов
[
0
,
N
)
является
доступным диапазоном
для данного дескриптора данных и аксессора, если для каждого индекса в диапазоне функция-член
access
возвращает корректную ссылку на элемент.
Стандартная библиотека
Следующие типы стандартной библиотеки удовлетворяют AccessorPolicy требованиям:
|
(C++23)
|
тип для индексированного доступа к элементам
mdspan
(шаблон класса) |
|
(C++26)
|
тип для выровненного доступа к элементам
mdspan
(шаблон класса) |
|
Определено в пространстве имён
std::linalg
|
|
|
(C++26)
|
std::mdspan
политика доступа, ссылка которой представляет произведение фиксированного масштабирующего коэффициента и ссылки вложенной
std::mdspan
политики доступа
(шаблон класса) |
|
(C++26)
|
std::mdspan
политика доступа, ссылка которой представляет комплексное сопряжение ссылки вложенной
std::mdspan
политики доступа
(шаблон класса) |