11 std::underlying_type_t<PrimitiveType> Start,
12 std::underlying_type_t<PrimitiveType> End,
13 bool Inverted = (Start > End)>
29 if constexpr (Inverted) {
37 if constexpr (Inverted) {
45 m_value = increment(m_value);
50 m_value = decrement(m_value);
56 m_value = increment(m_value);
62 m_value = decrement(m_value);
83 template <PrimitiveType Start, PrimitiveType End>
86 using integral_type = std::underlying_type_t<PrimitiveType>;
87 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
88 constexpr
static auto EndI =
static_cast<integral_type
>(End);
92 template <PrimitiveType Start,
bool LowerToUpper = true>
96 using integral_type = std::underlying_type_t<PrimitiveType>;
97 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
98 constexpr
static auto EndI =
static_cast<integral_type
>(End);
99 if constexpr (LowerToUpper) {
106 template <PrimitiveType End,
bool LowerToUpper = true>
110 using integral_type = std::underlying_type_t<PrimitiveType>;
111 constexpr
static auto StartI =
static_cast<integral_type
>(Start);
112 constexpr
static auto EndI =
static_cast<integral_type
>(End);
113 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)