Espacios de nombres
Variantes
Acciones

std::span

De cppreference.com
< cpp‎ | container
Definido en el archivo de encabezado <span>
template<

    typename T,
    std::size_t Extent = std::dynamic_extent

> class span;
(desde C++20)

La plantilla de clase span (lapso) describe un objeto que puede referirse a una secuencia contigua de objetos con el primer elemento de la secuencia en la posición cero. Un lapso (span) puede tener ya sea un alcance (extent) "estático", en cuyo caso el número de elementos en la secuencia se conoce y está codificado en el tipo, o un alcance "dinámico".

Una implementación típica mantiene solamente dos miembros: un puntero a T y un tamaño.

Contenido

[editar] Parámetros de plantilla

T - Tipo de elemento; debe ser un tipo completo que no es un tipo de clase abstracta.
Extent - El número de elementos en la secuencia, o std::dynamic_extent si es dinámico.

[editar] Tipos miembro

Tipo miembro Definición
element_type T
value_type std::remove_cv_t<T>
size_type std::size_t
difference_type std::ptrdiff_t
pointer T*
const_pointer const T*
reference T&
const_reference const T&
iterator LegacyRandomAccessIterator definido por la implementación, ConstexprIterator, y LegacyContiguousIterator cuyo value_type es value_type
reverse_iterator std::reverse_iterator<iterator>

Nota: iterator es un iterador mutable si T no está calificado const.

Todos los requerimientos de los tipos de iterador de un Container también se aplican al tipo iterator de span.

[editar] Constante miembro

static constexpr std::size_t extent = Extent;

[editar] Funciones miembro

Construye un lapso (span).
(función miembro pública) [editar]
Asigna un lapso.
(función miembro pública) [editar]
Iteradores
Devuelve un iterador al inicio de la secuencia.
(función miembro pública) [editar]
Devuelve un iterador al final de la secuencia.
(función miembro pública) [editar]
Devuelve un iterador inverso al inicio de la secuencia.
(función miembro pública) [editar]
Devuelve un iterador inverso al final de la secuencia.
(función miembro pública) [editar]
Acceso a elementos
Accede al primer elemento.
(función miembro pública) [editar]
Accede al último elemento.
(función miembro pública) [editar]
Accede a un elemento de la secuencia.
(función miembro pública) [editar]
Devuelve un puntero al inicio de la secuencia de elementos.
(función miembro pública) [editar]
Observadores
Devuelve el número de elementos en la secuencia.
(función miembro pública) [editar]
Devuelve el tamaño de la secuencia en bytes.
(función miembro pública) [editar]
Comprueba si la secuencia está vacía.
(función miembro pública) [editar]
Subvistas
Obtiene un sublapso que consiste en los primeros N elementos de la secuencia.
(función miembro pública) [editar]
Obtiene un sublapso que consiste en los últimos N elementos de la secuencia.
(función miembro pública) [editar]
Obtiene un sublapso.
(función miembro pública) [editar]

[editar] Funciones no miembro

Convierte un lapso (span) en una vista de sus bytes subyacentes.
(plantilla de función) [editar]

[editar] Constante no miembro

Una constante de tipo size_t que significa que el lapso tiene alcance dinámico.
(constante) [editar]

[editar] Plantilla asistente

template<typename T, std::size_t Extent>
inline constexpr bool ranges::enable_borrowed_range<std::span<T, Extent>> = true;

Esta especialización de std::ranges::enable_borrowed_range hace que un lapso (span) satisfaga a borrowed_range.

template<typename T, std::size_t Extent>

inline constexpr bool ranges::enable_view<std::span<T, Extent>> =

    Extent == 0 || Extent == dynamic_extent;

Esta especialización de std::ranges::enable_view hace que un lapso (span) de cero o alcance dinámico satisfaga a view. Los lapsos estáticos de un alcance diferente de cero no pueden inicializarse mediante la inicialización por defecto (default_initializable) y por lo tanto no son vistas.

[editar] Guías de deducción