Namensräume
Varianten
Aktionen

std::ranges::common_range

Von cppreference.com
< cpp‎ | ranges
 
 
Bereichsbibliothek
Range-Adaptoren
 
Definiert in der Header-Datei <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).

[bearbeiten] Beispiel

#include <ranges>
 
struct A
{
    char* begin();
    char* end();
};
static_assert( std::ranges::common_range<A> );
 
struct B
{
    char* begin();
    bool end();
};  // not a common_range: begin/end have different types
static_assert( not std::ranges::common_range<B> );
 
struct C
{
    char* begin();
};  // not a common_range, not even a range: has no end()
static_assert( not std::ranges::common_range<C> );
 
int main() {}

[bearbeiten] Siehe auch

konvertiert eine view in eine common_range
(Klassen-Template) (Range-Adaptor-Objekt)[edit]