Namespaces
Variants
Actions

std::ranges::view_interface

From cppreference.com
< cpp‎ | ranges
 
 
Ranges library
Views
view_interface
  

Range adaptors
 
std::ranges::view_interface
 
Defined in header <ranges>
template< class D >

    requires std::is_class_v<D> && std::same_as<D, std::remove_cv_t<D>>

class view_interface;
(since C++20)

std::ranges::view_interface is a helper class template for defining a view interface.

view_interface is typically used with CRTP:

class my_view : public std::ranges::view_interface<my_view>
{
public:
    auto begin() const { /*...*/ }
    auto end() const { /*...*/ }
    // empty() is provided if begin() returns a forward iterator
    // and end() returns a sentinel for it.
};

Contents

[edit] Member functions

returns whether the derived view is empty, provided only if it satisfies sized_range or forward_range
(public member function) [edit]
(C++23)
returns a constant iterator to the beginning of the range
(public member function)