std::ranges:: common_range
From cppreference.net
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | ||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
Definiert im Header
<ranges>
|
||
|
template
<
class
T
>
concept common_range
=
|
(seit C++20) | |
Das
common_range
Konzept ist eine Verfeinerung von
range
, für das
std::ranges::begin()
und
std::ranges::end()
denselben Typ zurückgeben (z.B. alle Standardbibliothek-Container).
Beispiel
Diesen Code ausführen
#include <ranges> struct A { char* begin(); char* end(); }; static_assert( std::ranges::common_range<A> ); struct B { char* begin(); bool end(); }; // kein common_range: begin/end haben unterschiedliche Typen static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // kein common_range, nicht einmal ein range: hat kein end() static_assert( not std::ranges::common_range<C> ); int main() {}
Siehe auch
konvertiert eine
view
in einen
common_range
(Klassen-Template) (Range-Adapter-Objekt) |