std::dynamic_extent
De cppreference.com
<tbody>
</tbody>
| 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.
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.
Ejemplo
Ejecuta este código
#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
Véase también
(C++20) |
Una vista que no es dueña sobre una secuencia contigua de objetos. (plantilla de clase) |