Skip to content
Flecs v4.1
enum.hpp File Reference

Compile-time enum reflection utilities. More...

#include <utility>

Go to the source code of this file.

Classes

struct  flecs::enum_last< E >
 Trait to define the last valid enum value for reflection. More...
struct  flecs::_::enum_constant< T >
 Enumeration constant data. 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)
#define FLECS_ENUM_MAX_COUNT   (FLECS_ENUM_MAX(int) + 1)
#define FLECS_CPP_ENUM_REFLECTION_SUPPORT   1
#define flecs_enum_cast(T, v)
#define FLECS_ENUM_LAST(T, Last)

Functions

template<size_t N>
constexpr size_t flecs::_::enum_template_arg_separator (const char(&func_name)[N], size_t pos, size_t end, size_t depth=0)
template<typename E, E C>
constexpr bool flecs::_::enum_constant_is_valid ()
template<typename E>
enum_data< E > flecs::enum_type (flecs::world_t *world)
 Convenience function for getting enum reflection data.

Variables

template<typename E, underlying_type_t< E > Value>
constexpr E flecs::_::to_constant< E, Value >::value

Detailed Description

Compile-time enum reflection utilities.

Discover at compile time the valid enumeration constants for an enumeration type and their names. This is used to automatically register enum constants.

Definition in file enum.hpp.

Macro Definition Documentation

◆ FLECS_CPP_ENUM_REFLECTION_SUPPORT

#define FLECS_CPP_ENUM_REFLECTION_SUPPORT   1

Definition at line 30 of file enum.hpp.

◆ flecs_enum_cast

#define flecs_enum_cast ( T,
v )
Value:
static_cast<T>(v)

Definition at line 40 of file enum.hpp.

◆ FLECS_ENUM_LAST

#define FLECS_ENUM_LAST ( T,
Last )
Value:
namespace flecs {\
template<>\
struct enum_last<T> {\
static constexpr T value = Last;\
};\
}

Definition at line 78 of file enum.hpp.

◆ FLECS_ENUM_MAX

#define FLECS_ENUM_MAX ( T)
Value:
_::to_constant<T, 126>::value

Definition at line 13 of file enum.hpp.

◆ FLECS_ENUM_MAX_COUNT

#define FLECS_ENUM_MAX_COUNT   (FLECS_ENUM_MAX(int) + 1)

Definition at line 14 of file enum.hpp.

Function Documentation

◆ enum_type()

template<typename E>
enum_data< E > flecs::enum_type ( flecs::world_t * world)

Convenience function for getting enum reflection data.

Get enum reflection data for an enum type.

Convenience function for getting enum reflection data.

Template Parameters
EThe enum type.
Parameters
worldThe world.
Returns
Enum data wrapper.

Definition at line 457 of file enum.hpp.