std::ranges::common_range
Von de.cppreference.net
| Definiert in Header <ranges>
|
||
template< class T >
concept common_range =
ranges::range<T> && std::same_as<ranges::iterator_t<T>, ranges::sentinel_t<T>>;
|
(seit C++20) | |
Das Konzept common_range ist eine Verfeinerung von range, für das std::ranges::begin() und std::ranges::end() denselben Typ zurückgeben (z. B. alle Standardbibliothekscontainer).
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) |