Namespaces
Variants

std:: extents, std:: dextents, std:: dims

From cppreference.net
Definido en el encabezado <mdspan>
template < class IndexType, std:: size_t ... Extents >
class extents ;
(1) (desde C++23)
template < class IndexType, std:: size_t Rank >
using dextents = /* ver más abajo */
(2) (desde C++23)
template < std:: size_t Rank, class IndexType = std:: size_t >
using dims = std :: dextents < IndexType, Rank > ;
(3) (desde C++26)
1) Representa un espacio de índices multidimensional de rango igual a sizeof... ( Extents ) .
2) Una plantilla de alias conveniente para un extents completamente dinámico. Sea d denotando std:: dynamic_extent , cada especialización de dextents < IndexType, Rank > es equivalente a extents < IndexType /*, d, d, ..., d*/ > (es decir, d se repite un total de Rank veces).
3) Una plantilla de alias conveniente para un extents completamente dinámico con std:: size_t como tipo de índice predeterminado.

Cada especialización de extents modela regular y es TriviallyCopyable .

Contenidos

Parámetros de plantilla

IndexType - el tipo de cada Extents no dinámico. Debe ser un tipo entero con signo o sin signo. De lo contrario, el programa está mal formado
Extents - representa la extensión (tamaño de un intervalo entero) para cada rango de índice. Cada elemento de este es igual a std:: dynamic_extent (en este caso, representa una extensión dinámica y el tamaño de la extensión se determinará dinámicamente), o es representable como un valor de tipo IndexType (entonces representa una extensión estática y el tamaño de la extensión es simplemente su valor), o de lo contrario el programa está mal formado
Rank - denota el rango de un extents completamente dinámico

Tipos de miembros

Tipo de miembro Definición
index_type IndexType
size_type std:: make_unsigned_t < index_type >
rank_type std::size_t

Miembros de datos

Nombre del miembro Definición
std:: array < index_type, rank_dynamic ( ) > dynamic-extents (privado) Un array que almacena el tamaño de cada extensión dinámica.
( objeto miembro solo para exposición* )

Funciones miembro

construye un extents
(función miembro pública)
Observadores
[static]
retorna el rango estático de un extents
(función miembro estática pública)
retorna el rango dinámico de un extents
(función miembro estática pública)
retorna el tamaño de extensión estática de un extents en un índice de rango determinado
(función miembro estática pública)
retorna el tamaño de extensión dinámica de un extents en un índice de rango determinado
(función miembro pública)
Ayudantes
retorna el producto de tamaños de extensión en el rango [ 0 , i )
( función miembro solo para exposición* )
retorna el producto de tamaños de extensiones en el rango [ i + 1 , rank ( ) )
( función miembro solo para exposición* )
convierte la entrada a un tipo entero
( función miembro solo para exposición* )
(private)
retorna el número de extensiones dinámicas por debajo de un índice de rango determinado
( función miembro solo para exposición* )
retorna el número r tal que en el rango [ 0 , r + 1 ) hay exactamente i + 1 extensiones dinámicas para un argumento determinado i
( función miembro solo para exposición* )

Funciones no miembro

(C++23)
compara las extensiones subyacentes en cada dimensión de dos extents
(función)

Guías de deducción (C++23)

Ejemplo

Véase también

(C++11)
obtiene el número de dimensiones de un tipo de array
(plantilla de clase)
(C++11)
obtiene el tamaño de un tipo de array a lo largo de una dimensión especificada
(plantilla de clase)