std::ranges::common_range
De es.cppreference.net
| Definido en el encabezado <ranges>
|
||
template< class T >
concept common_range =
ranges::range<T> && std::same_as<ranges::iterator_t<T>, ranges::sentinel_t<T>>;
|
(desde C++20) | |
El concepto common_range es un refinamiento de range para el cual std::ranges::begin() y std::ranges::end() retornan el mismo tipo (por ejemplo, todos los contenedores de la biblioteca estándar).
Ejemplo
Ejecutar este código
#include <ranges> struct A { char* begin(); char* end(); }; static_assert( std::ranges::common_range<A> ); struct B { char* begin(); bool end(); }; // no es un common_range: begin/end tienen tipos diferentes static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // no es un common_range, ni siquiera un range: no tiene end() static_assert( not std::ranges::common_range<C> ); int main() {}
Véase también
convierte una
view
en un
common_range
(plantilla de clase) (objeto adaptador de rango) |