69 static_assert(std::is_integral<T>::value,
"Only integral types are supported.");
81 TSeq(
T theBegin,
T theEnd,
T theStep = 1):
86 class iterator:
public std::iterator<std::random_access_iterator_tag, T, difference_type> {
146 return (other - *
this) > 0;
149 return other < *
this;
152 return !(*
this > other);
155 return !(other > *
this);
208 return TSeq<T>(begin, end, step);
222 std::ostringstream ret;
223 ret <<
"A sequence of values: " << *val->
begin()
224 <<
" <= i < " << *val->
end();
225 auto step = val->
step();
227 ret <<
" in steps of " << step;
iterator(T start, T step)
bool operator>=(const iterator &other) const
iterator operator-(difference_type v) const
const T operator[](const difference_type &v) const
bool operator!=(const iterator &other) const
bool operator>(const iterator &other) const
iterator & operator-=(const difference_type &v)
iterator & operator+=(const difference_type &v)
difference_type operator-(const iterator &other) const
bool operator==(const iterator &other) const
bool operator<(const iterator &other) const
iterator operator+(difference_type v) const
bool operator<=(const iterator &other) const
A pseudo container class which is a generator of indices.
typename std::make_signed< T >::type difference_type
TSeq(T theBegin, T theEnd, T theStep=1)
static constexpr double s