template <bool Const>

class IteratorImpl

Defined at line 64 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

The iterator implementation holds a pointer to the containing concat_view

object, and a std::variant

<std

::ranges::iterator_t

<Views

>...>. It starts

at variant index 0 with the begin() of the first view. When that hits the

end() of the first view, then it moves up to variant index 1 with the

begin() of the second view; and so on.

This makes operator* very easy since it's just a std::visit. Likewise,

operator== comes entirely for free with an explicit default (and thus an

implicitly defaulted operator!= from it too!) because std::variant is

conveniently comparable to treat different variant index as not equal and

same variant index as the two underlying iterators' equality.

Public Methods

void IteratorImpl<Const> ()

Defined at line 71 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

void IteratorImpl<Const> (const IteratorImpl<Const> & )

Defined at line 72 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

IteratorImpl<Const> & operator= (const IteratorImpl<Const> & )

Defined at line 73 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

bool operator== (const IteratorImpl<Const> & )

Defined at line 75 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

IteratorImpl<Const> & operator++ ()

Defined at line 77 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

IteratorImpl<Const> operator++ (int )

Defined at line 85 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

decltype(auto) operator* ()

Defined at line 91 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

decltype(auto) operator-> ()

Defined at line 95 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h

Friends

template <bool Const>
class ConcatView