Flecs v4.0
A fast entity component system (ECS) for C & C++
|
Compile time enum reflection utilities. More...
#include <string.h>
#include <limits>
Go to the source code of this file.
Classes | |
struct | flecs::_::to_constant< E, Value > |
struct | flecs::enum_last< E > |
struct | flecs::_::enum_is_valid< E, C > |
struct | flecs::_::enum_constant_data< T > |
Enumeration constant data. More... | |
struct | flecs::_::enum_reflection< E, Handler > |
Provides utilities for enum reflection. More... | |
struct | flecs::_::enum_data_impl< E > |
Enumeration type data. More... | |
struct | flecs::_::enum_type< E > |
Class that scans an enum for constants, extracts names & creates entities. More... | |
struct | flecs::enum_data< E > |
Convenience type with enum reflection data. More... | |
Namespaces | |
namespace | flecs::_ |
Int to enum. | |
Macros | |
#define | FLECS_ENUM_MAX(T) _::to_constant<T, 128>::value |
#define | FLECS_ENUM_MAX_COUNT (FLECS_ENUM_MAX(int) + 1) |
#define | FLECS_CPP_ENUM_REFLECTION_SUPPORT 1 |
#define | flecs_enum_cast(T, v) static_cast<T>(v) |
#define | FLECS_ENUM_LAST(T, Last) |
#define | ECS_SIZE_T_STR "constexpr size_t; size_t = long unsigned int" |
Functions | |
template<typename E > | |
constexpr size_t | flecs::_::enum_type_len () |
template<typename E , E C> | |
constexpr bool | flecs::_::enum_constant_is_valid () |
Test if value is valid for enumeration. | |
template<typename E , underlying_type_t< E > C> | |
constexpr bool | flecs::_::enum_constant_is_valid_wrap () |
template<typename E > | |
enum_data< E > | flecs::enum_type (flecs::world_t *world) |
Convenience function for getting enum reflection data. | |
Compile time enum reflection utilities.
Discover at compile time valid enumeration constants for an enumeration type and their names. This is used to automatically register enum constants.
Definition in file enum.hpp.
#define ECS_SIZE_T_STR "constexpr size_t; size_t = long unsigned int" |
#define FLECS_ENUM_LAST | ( | T, | |
Last ) |