Namespaces
Variants

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

From cppreference.net
C++ named requirements

AccessorPolicy define cómo se accede a los elementos desde un manejador de datos dado hacia dichos elementos y un índice. Se utiliza como política en std:: mdspan para especificar el acceso a una referencia de un elemento utilizando un índice subyacente unidimensional.

Contenidos

Requisitos

Un tipo A satisface AccessorPolicy si modela copyable , y lo siguiente es true :

Y, dados los siguientes tipos y valores, las expresiones mostradas en la tabla a continuación son válidas y tienen la semántica indicada:

Leyenda

Tipo Definición
A un tipo de política de acceso
OP un tipo de política de desplazamiento
Valor Definición
a un valor de tipo (posiblemente calificado como const) A
p un valor de tipo (posiblemente calificado como const) A::data_handle_type
i , j , n valores de tipo std:: size_t

Tipos de miembros

Tipo Definición Requisitos
A::element_type no especificado
  • Un tipo de objeto completo que no es un tipo de clase abstracta
A::data_handle_type no especificado [1]
  • Modela copyable
  • Los siguientes valores son todos true :
A::reference no especificado [2]
A::offset_policy OP
  • Satisface los requisitos de AccessorPolicy
  • std:: constructible_from < OP, const A & > es true
  • typename OP​ :: ​element_type y typename A​ :: ​element_type son el mismo tipo
  1. No se requiere que sea element_type * .
  2. No se requiere que sea element_type & .

Funciones miembro

Expresión Tipo de retorno Semántica
a. access ( p, i ) typename A :: reference
a. offset ( p, i ) typename A :: offset_policy
:: data_handle_type
  • Un valor q tal que para b siendo A :: offset_policy ( a ) , y cualquier entero n para el cual [ 0 , n ) es un rango accesible (ver abajo) de p y a .
  • [ 0 , n - i ) es un rango accesible de q y b ; y
  • b. access ( q, j ) proporciona acceso al mismo elemento que a. access ( p, i + j ) , para cada j en el rango [ 0 , n - i ) .

Rango accesible

Un rango de índices [ 0 , N ) es un rango accesible de un manejador de datos y un accessor dados si, para cada índice en el rango, la función miembro access produce una referencia válida a un elemento.

Biblioteca estándar

Los siguientes tipos de biblioteca estándar satisfacen AccessorPolicy requisitos:

un tipo para acceso indexado a elementos de mdspan
(plantilla de clase)
un tipo para acceso alineado a elementos de mdspan
(plantilla de clase)
Definido en el espacio de nombres std::linalg
std::mdspan política de acceso cuya referencia representa el producto de un factor de escala fijo y la referencia de su acceso anidado de std::mdspan
(plantilla de clase)
std::mdspan política de acceso cuya referencia representa el conjugado complejo de la referencia de su acceso anidado de std::mdspan
(plantilla de clase)