CRTP base used to define classes that yield disjoint, adjacent pairs of elements from an even-length source sequence.
More...
|
| auto | begin () const |
| | Return const iterator to the beginning. More...
|
| |
| auto | end () const |
| | Return const iterator to sentinel. More...
|
| |
| auto | begin () |
| | Return iterator to the beginning. More...
|
| |
| auto | end () |
| | Return iterator to sentinel. More...
|
| |
| bool | empty () const |
| | Return true if the range is empty. More...
|
| |
| bool | empty () const |
| | Return true if the range is empty. More...
|
| |
| auto | size () const |
| | Return the number of pairs, i.e., half the size of the source. More...
|
| |
| auto | size () const |
| | Return the number of pairs, i.e., half the size of the source. More...
|
| |
| constexpr auto | cbegin () const |
| | Return constant iterator to the beginning. More...
|
| |
| constexpr auto | cend () const |
| | Return constant iterator to the end. More...
|
| |
| constexpr auto | rbegin () |
| | Return reverse iterator to the beginning. More...
|
| |
| constexpr auto | rend () |
| | Return reverse iterator to the end. More...
|
| |
| constexpr auto | rbegin () const |
| | Return const reverse iterator to the beginning. More...
|
| |
| constexpr auto | rend () const |
| | Return const reverse iterator to the end. More...
|
| |
| constexpr auto | crbegin () const |
| | Return const reverse iterator to the beginning. More...
|
| |
| constexpr auto | crend () const |
| | Return const reverse iterator to the end. More...
|
| |
| constexpr bool | empty () const |
| | Return true if the range is empty, i.e., begin() == end(). More...
|
| |
| constexpr | operator bool () const |
| | Return true if the range is non-empty, i.e., begin() != end(). More...
|
| |
| constexpr bool | operator! () const |
| | Return true if the range is empty, i.e., begin() == end(). More...
|
| |
| constexpr auto | size () const |
| | Return the number of elements in this view, unsigned (size_t), by computing std::ranges::distance(begin, end) More...
|
| |
| constexpr auto | ssize () const |
| | Return the number of elements in this view, signed (ptrdiff_t). More...
|
| |
| constexpr decltype(auto) | front () const |
| | Return the first element. More...
|
| |
| constexpr decltype(auto) | back () const |
| | Return the last element. Enabled if we have bidirectional iterators. More...
|
| |
| constexpr decltype(auto) | operator[] (std::ptrdiff_t n) |
| | Return the n'th element, possibly mutable. More...
|
| |
| constexpr decltype(auto) | operator[] (std::ptrdiff_t n) const |
| | Return the n'th element, const. More...
|
| |
| constexpr auto * | data () |
| | Return pointer to underlying contiguous memory. More...
|
| |
| constexpr auto * | data () const |
| | Return const pointer to underlying contiguous memory. More...
|
| |
template<class Self_tp, class Make_pair_tp>
class mysql::ranges::Disjoint_pairs_interface< Self_tp, Make_pair_tp >
CRTP base used to define classes that yield disjoint, adjacent pairs of elements from an even-length source sequence.
For example, if the source sequence is 2, 3, 5, 7, 11, 13, then this yields the pairs <2,3>, <5,7>, <11,13>. It is conceptually similar to std::stride_view<std::slide_view<Source_tp>>, except the window width is defined at compile time and each window is wrapped in an object.
This is for objects that own the source. If you need objects that do not own the source - a view - use Disjoint_pairs_view.
- Template Parameters
-
| Self_tp | Class that derives from this class. It must implement the member function disjoint_pairs_source(), returning a reference to an object with the member functions begin, end, empty, and size. The distance between begin and end must be even. |
| Make_pair_tp | Class containing a static member function make_pair that defines how to construct a pair from two adjacent elements. By default, uses detail::Make_pair, for which make_pair constructs and returns a std::pair object. |