std::ranges:: common_range
From cppreference.net
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | ||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
Definido en el encabezado
<ranges>
|
||
|
template
<
class
T
>
concept common_range
=
|
(desde C++20) | |
El concepto
common_range
es un refinamiento de
range
para el cual
std::ranges::begin()
y
std::ranges::end()
devuelven 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) |