Espacios de nombres
Variantes
Acciones

std::full_extent, std::full_extent_t

De cppreference.com
< cpp‎ | container‎ | mdspan
 
 
 
 
Definido en el archivo de encabezado <mdspan>
struct full_extent_t { explicit full_extent_t() = default; };
(1) (desde C++26)
inline constexpr std::full_extent_t full_extent {};
(2) (desde C++26)
1) La clase std::full_extent_t es un tipo especificador de sección que puede ser usado en std::submdspan.
2) La instancia correspondiente std::full_extent de (1) es un tipo especificador de sección para indicar todo el rango de índices en la dimensión especificada en std::submdspan.

[editar] Ejemplo

#include <mdspan>
#include <print>
 
void print_view(auto view)
{
    static_assert(view.rank() <= 2);
 
    if constexpr (view.rank() == 2)
    {
      for (std::size_t i = 0; i < view.extent(0); ++i)
      {
        for (std::size_t j = 0; j < view.extent(1); ++j)
          std::print("{} ", view[i, j]);
        std::println("");
      }
    }
    else if constexpr (view.rank() == 1)
    {
      for (std::size_t i = 0; i < view.extent(0); ++i)
        std::print("{} ", view[i]);
      std::println("");
    }
    else
    {
      std::println("{}", view[]);
    }
    std::println("");
}
 
int main()
{
    char letters [] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' };
    std::mdspan view (letters, 3, 3);
 
    print_view(view);
    print_view(std::submdspan(view, std::full_extent, std::full_extent));
    print_view(std::submdspan(view, std::full_extent, 1));
    print_view(std::submdspan(view, 1, std::full_extent));
    print_view(std::submdspan(view, 2, 1));
}

Posible salida:

A B C 
D E F 
G H I 
 
A B C 
D E F 
G H I 
 
B E H 
 
D E F 
 
H

[editar] Véase también

(C++26)
Devuelve una vista de un subconjunto de un mdspan existente.
(plantilla de función) [editar]