|
template<E Value> |
static constexpr underlying_type_t< E > | to_int () |
|
template<underlying_type_t< E > Value> |
static constexpr E | from_int () |
|
template<E Value> |
static constexpr underlying_type_t< E > | is_not_0 () |
|
template<E Low, E High, typename... Args> |
static constexpr underlying_type_t< E > | each_enum_range (underlying_type_t< E > last_value, Args... args) |
| Iterates over the range [Low, High] of enum values between Low and High.
|
|
template<E Low, E High, typename... Args> |
static constexpr underlying_type_t< E > | each_mask_range (underlying_type_t< E > last_value, Args... args) |
| Iterates over the mask range (Low, High] of enum values between Low and High.
|
|
template<E Value = _::to_constant< E , 128>::value, typename... Args> |
static constexpr underlying_type_t< E > | each_enum (Args... args) |
| Handles enum iteration for gathering reflection data.
|
|
template<typename E, template< typename > class Handler>
struct flecs::_::enum_reflection< E, Handler >
Provides utilities for enum reflection.
This struct provides static functions for enum reflection, including conversion between enum values and their underlying integral types, and iteration over enum values.
- Template Parameters
-
E | The enum type. |
Handler | The handler for enum reflection operations. |
Definition at line 181 of file enum.hpp.
template<typename E , template< typename > class Handler>
template<E Value = _::to_constant< E , 128>::value, typename... Args>
Handles enum iteration for gathering reflection data.
Iterates over all enum values up to a specified maximum value (each_enum_range<0, Value>), then iterates the rest of the possible bitmasks (each_mask_range<Value, high_bit>).
- Template Parameters
-
Value | The maximum enum value to iterate up to. |
Args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Parameters
-
args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Returns
- constexpr underlying_type_t<E> The result of the iteration.
Definition at line 261 of file enum.hpp.
template<typename E , template< typename > class Handler>
template<E Low, E High, typename... Args>
static constexpr underlying_type_t< E > flecs::_::enum_reflection< E, Handler >::each_enum_range |
( |
underlying_type_t< E > | last_value, |
|
|
Args... | args ) |
|
inlinestaticconstexpr |
Iterates over the range [Low, High] of enum values between Low and High.
Recursively divide and conquers the search space to reduce the template-depth. Once recursive division is complete, calls Handle<E>::handle_constant in ascending order, passing the values computed up the chain.
- Template Parameters
-
Low | The lower bound of the search range, inclusive. |
High | The upper bound of the search range, inclusive. |
Args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Parameters
-
last_value | The last value processed in the iteration. |
args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Returns
- constexpr underlying_type_t<E> The result of the iteration.
Definition at line 212 of file enum.hpp.
template<typename E , template< typename > class Handler>
template<E Low, E High, typename... Args>
static constexpr underlying_type_t< E > flecs::_::enum_reflection< E, Handler >::each_mask_range |
( |
underlying_type_t< E > | last_value, |
|
|
Args... | args ) |
|
inlinestaticconstexpr |
Iterates over the mask range (Low, High] of enum values between Low and High.
Recursively iterates the search space, looking for enums defined as multiple-of-2 bitmasks. Each iteration, shifts bit to the right until it hits Low, then calls Handler<E>::handle_constant for each bitmask in ascending order.
- Template Parameters
-
Low | The lower bound of the search range, not inclusive |
High | The upper bound of the search range, inclusive. |
Args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Parameters
-
last_value | The last value processed in the iteration. |
args | Additional arguments to be passed through to Handler<E>::handle_constant |
- Returns
- constexpr underlying_type_t<E> The result of the iteration.
Definition at line 238 of file enum.hpp.