lsst.sphgeom gd5d1ca8e18+62d12e78cb
|
#include <RangeSet.h>
Public Member Functions | |
Iterator (uint64_t const *ptr) | |
Iterator & | operator++ () |
Iterator & | operator-- () |
Iterator | operator++ (int) |
Iterator | operator-- (int) |
Iterator | operator+ (ptrdiff_t n) const |
Iterator | operator- (ptrdiff_t n) const |
Iterator & | operator+= (ptrdiff_t n) |
Iterator & | operator-= (ptrdiff_t n) |
ptrdiff_t | operator- (Iterator const &i) const |
bool | operator== (Iterator const &i) const |
bool | operator!= (Iterator const &i) const |
bool | operator< (Iterator const &i) const |
bool | operator> (Iterator const &i) const |
bool | operator<= (Iterator const &i) const |
bool | operator>= (Iterator const &i) const |
std::tuple< uint64_t, uint64_t > | operator* () |
std::tuple< uint64_t, uint64_t > | operator[] (ptrdiff_t n) const |
Public Attributes | |
uint64_t const * | p = nullptr |
Friends | |
void | swap (Iterator &a, Iterator &b) |
Iterator | operator+ (ptrdiff_t n, Iterator const &i) |
A constant iterator over the ranges (represented as 2-tuples) in a RangeSet.
RangeSet does not store an array of 2-tuples internally. But, ยง24.2.5 of the C++11 standard requires the following from constant forward iterators:
reference
type of the iterator must be a reference to const value_type
So, dereferencing a forward iterator cannot return by value, or return a reference to a member of the iterator itself. As a result, it seems impossible to provide more than an input iterator for container objects that do not store their values directly.
While this class only claims to be an input iterator, it nevertheless implements most random access iterator requirements. Dereferencing an iterator returns a tuple by value, and operator->
is omitted.