30 #ifndef DOXYGEN_SHOULD_SKIP_THIS
50 struct Iterator :
public std::iterator<std::input_iterator_tag, T> {
59 :
index(iteratorIndex)
90 return index != other.index;
100 return index == other.index;
111 return lo <= value && value <
hi;
191 extern template struct Range<
float>;
192 extern template struct Range<
int>;
193 extern template struct Range<
unsigned>;
196 #ifndef DOXYGEN_SHOULD_SKIP_THIS
A range iterator.
Definition: Range.h:50
constexpr Iterator(T iteratorIndex) noexcept
Constructor.
Definition: Range.h:58
A half-open range of values.
Definition: Range.h:42
constexpr bool operator!=(const Iterator &other) const noexcept
Inequality operator.
Definition: Range.h:89
T operator*() noexcept
Dereference operator.
Definition: Range.h:69
constexpr bool isEmpty() const noexcept
Check if the range is empty.
Definition: Range.h:149
T lo
The lower endpoint (included)
Definition: Range.h:43
constexpr bool operator==(const Iterator &other) const noexcept
Equality operator.
Definition: Range.h:99
constexpr Iterator end() const noexcept
Get a end iterator.
Definition: Range.h:130
T hi
The higher endpoint (excluded)
Definition: Range.h:44
constexpr bool contains(T value) const noexcept
Check if a value is in a range.
Definition: Range.h:110
constexpr Iterator begin() const noexcept
Get a begin iterator.
Definition: Range.h:120
T index
The index in the range.
Definition: Range.h:51
constexpr T length() const noexcept
Get the length of the range.
Definition: Range.h:139
Iterator & operator++() noexcept
Increment operator.
Definition: Range.h:78
constexpr bool isValid() const noexcept
Check is the range is valid.
Definition: Range.h:159