30 template<
class IntType>
38 template<
class IntType>
49 template<
class IntType>
63 template<
class IntType>
70 template<
class IntType>
73 return (start_ + size_);
77 template<
class IntType>
80 return (start_ + (size_ - 1));
84 template<
class IntType>
93 template<
class IntType>
94 inline constexpr IntType
102 template<
class IntType>
112 template<
class IntType>
123 template<
class IntType>
133 template<
class IntType>
144 template<
class IntType>
154 template<
class IntType>
164 template<
class IntType>
173 template<
class IntType>
182 template<
class IntType>
183 inline constexpr IntType
187 return (value_ - iter.value_);
191 template<
class IntType>
192 inline constexpr
bool 196 return (value_ == iter.value_);
200 template<
class IntType>
201 inline constexpr
bool 205 return (value_ < iter.value_);
211 template<
class IntType>
212 inline constexpr IntType
220 template<
class IntType>
230 template<
class IntType>
241 template<
class IntType>
251 template<
class IntType>
262 template<
class IntType>
272 template<
class IntType>
282 template<
class IntType>
291 template<
class IntType>
300 template<
class IntType>
301 inline constexpr IntType
305 return (iter.value_ - value_);
309 template<
class IntType>
310 inline constexpr
bool 314 return (value_ == iter.value_);
318 template<
class IntType>
319 inline constexpr
bool 323 return (value_ > iter.value_);
329 template<
class IntType>
333 return const_iterator(start_ + ((i < 0 || i > size_) ? size_ : i));
337 template<
class IntType>
345 template<
class IntType>
353 template<
class IntType>
361 template<
class IntType>
369 template<
class IntType>
377 template<
class IntType>
385 template<
class IntType>
393 template<
class IntType>
403 template<
class IntType>
410 template<
class IntType>
422 template<
class IntType>
429 template<
class IntType>
436 template<
class IntType>
443 template<
class IntType>
446 if (size_ < 0) size_ = 0;
450 template<
class IntType>
457 return (size_ && start_ <= value && (value - start_) < size_);
463 template<
class IntType>
471 template<
class IntType>
479 template<
class IntType>
487 template<
class IntType>
497 template<
class IntType>
501 const IntType old(size_);
508 template<
class IntType>
517 template<
class IntType>
constexpr const_reverse_iterator operator-(const IntType n) const noexcept
Return iterator with offset.
constexpr bool operator==(const const_iterator &iter) const noexcept
Test for equality of values.
IntType operator--() noexcept
Decrease the size by 1, but never below 0.
Random-access input iterator with const access.
const_iterator & operator+=(const IntType n) noexcept
Arbitrary increment.
constexpr IntType operator[](const IntType i) const noexcept
Offset dereference, without bounds checking.
void setSize(const IntType n) noexcept
Change the size, no checks. Identical to resize()
void resize(const IntType n) noexcept
Change the size, no checks. Identical to setSize()
const_reverse_iterator crbegin() const noexcept
A const_reverse_iterator set to 1 before the end of range.
bool contains(const IntType value) const noexcept
True if the (global) value is within the range.
constexpr IntType operator[](const IntType n) const noexcept
Offset dereference operator.
const_reverse_iterator & operator++() noexcept
Prefix increment.
IntType rbegin_value() const noexcept
The max value of the range.
const_reverse_iterator & operator+=(const IntType n) noexcept
Arbitrary increment.
const_reverse_iterator crend() const noexcept
A const_reverse_iterator set to 1 before the begin of range.
IntType end_value() const noexcept
The value 1 beyond the end of the range.
void clampSize() noexcept
Enforce non-negative size.
Random-access reverse input iterator with const access.
constexpr bool operator<(const const_reverse_iterator &iter) const noexcept
Reverse compare less-than.
const_iterator begin() const noexcept
A const_iterator set to the beginning of the range.
const_iterator cend() const noexcept
A const_iterator set to 1 beyond the end of the range.
const_reverse_iterator rbegin() const noexcept
A const_reverse_iterator set to 1 before the end of range.
const_iterator & operator++() noexcept
Prefix increment.
IntType operator++() noexcept
Increase the size by 1.
const_iterator cbegin() const noexcept
A const_iterator set to the beginning of the range.
const_reverse_iterator & operator--() noexcept
Prefix decrement.
const_reverse_iterator rend() const noexcept
A const_reverse_iterator set to 1 before the begin of range.
const_iterator end() const noexcept
A const_iterator set to 1 beyond the end of the range.
constexpr const_iterator operator-(const IntType n) const noexcept
Return iterator with offset.
const_iterator & operator--() noexcept
Prefix decrement.
const_iterator at(const IntType i) const
Return const_iterator to a position within the range, with bounds checking.
constexpr bool operator==(const const_reverse_iterator &iter) const noexcept
Test for equality of values.
IntType begin_value() const noexcept
The value at the beginning of the range - same as min(), start()
constexpr const_iterator operator+(const IntType n) const noexcept
Return iterator with offset.
constexpr bool operator<(const const_iterator &iter) const noexcept
Compare less-than.
const_reverse_iterator & operator-=(const IntType n) noexcept
Arbitrary decrement.
IntType operator-=(const IntType n) noexcept
Decrease the size by n, but never below 0.
const_iterator & operator-=(const IntType n) noexcept
Arbitrary decrement.
constexpr IntType operator[](const IntType n) const noexcept
Offset dereference operator.
IntType rend_value() const noexcept
The value 1 before the begin of range.
IntType operator+=(const IntType n) noexcept
Increase the size by n.
void reset() noexcept
Reset to zero start and zero size.
constexpr IntRange() noexcept
Default construct an empty range (0,0)
void setStart(const IntType i) noexcept
Set the start position, no checks.
constexpr const_reverse_iterator operator+(const IntType n) const noexcept
Return iterator with offset.