Espacios de nombres
Variantes
Acciones

std::dynamic_extent

De cppreference.com
< cpp‎ | container‎ | span
 
 
 
 
Definido en el archivo de encabezado <span>
inline constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_t>::max();
(desde C++20)

std::dynamic_extent es una constante de tipo std::size_t que se usa para diferenciar un std::span de alcance dinámico de uno estático.

[editar] Nota

Ya que std::size_t es un tipo sin signo, una definición equivalente es:

inline constexpr std::size_t dynamic_extent = -1;

Véase conversiones de enteros.

[editar] Ejemplo

#include <array>
#include <cassert>
#include <cstddef>
#include <iostream>
#include <span>
#include <string_view>
#include <vector>
 
int main()
{
    auto imprimir = [](std::string_view const nombre, std::size_t ex) {
        std::cout << nombre << ", ";
        if (ex == std::dynamic_extent) {
            std::cout << "alcance dinámico\n";
        } else {
            std::cout << "alcance estático = " << ex << '\n';
        }
    };
 
    int a[]{1,2,3,4,5};
 
    std::span lapso1{a};
    imprimir("lapso1", lapso1.extent);
 
    std::span<int, std::dynamic_extent> lapso2{a};
    imprimir("lapso2", lapso2.extent);
 
    std::array ar{1,2,3,4,5};
    std::span lapso3{ar};
    imprimir("lapso3", lapso3.extent);
 
    std::vector v{1,2,3,4,5};
    std::span lapso4{v};
    imprimir("lapso4", lapso4.extent);
}

Salida:

lapso1, alcance estático = 5
lapso2, alcance dinámico
lapso3, alcance estático = 5
lapso4, alcance dinámico

[editar] Véase también

(C++20)
Una vista que no es dueña sobre una secuencia contigua de objetos.
(plantilla de clase) [editar]