11 std::underlying_type_t<PrimitiveType> Start,
12 std::underlying_type_t<PrimitiveType> End,
13 bool Inverted = (Start > End)>
28 if constexpr (Inverted) {
36 if constexpr (Inverted) {
44 m_value = increment(m_value);
49 m_value = decrement(m_value);
55 m_value = increment(m_value);
61 m_value = decrement(m_value);
82 template <PrimitiveType Start, PrimitiveType End>
85 using integral_type = std::underlying_type_t<PrimitiveType>;
86 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
87 constexpr
static auto EndI =
static_cast<integral_type
>(End);
91 template <PrimitiveType Start,
bool LowerToUpper = true>
95 using integral_type = std::underlying_type_t<PrimitiveType>;
96 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
97 constexpr
static auto EndI =
static_cast<integral_type
>(End);
98 if constexpr (LowerToUpper) {
105 template <PrimitiveType End,
bool LowerToUpper = true>
109 using integral_type = std::underlying_type_t<PrimitiveType>;
110 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
111 constexpr
static auto EndI =
static_cast<integral_type
>(End);
112 if constexpr (LowerToUpper) {
static auto increment(integral_type pt) -> integral_type
iterator(const integral_type pt)
auto operator--(int) -> iterator
auto operator++() -> iterator
auto operator++(int) -> iterator
auto operator--() -> iterator
auto operator*() const -> PrimitiveType
static auto decrement(integral_type pt) -> integral_type
iterator(const PrimitiveType pt)
auto begin() const -> iterator
auto cend() const -> const_iterator
std::underlying_type_t< PrimitiveType > integral_type
auto cbegin() const -> const_iterator
auto end() const -> iterator
std::vector< PrimitiveType > primitive_above(PrimitiveType pt, bool lower_to_upper)
std::vector< PrimitiveType > primitive_range(PrimitiveType pt0, PrimitiveType pt1)
std::vector< PrimitiveType > primitive_below(PrimitiveType pt, bool lower_to_upper)