20#define ECS_FUNC_NAME_FRONT(type, name) ((sizeof(#type) + sizeof(" flecs::_::() [T = ") + sizeof(#name)) - 3u)
21#define ECS_FUNC_NAME_BACK (sizeof("]") - 1u)
22#define ECS_FUNC_NAME __PRETTY_FUNCTION__
23#elif defined(__GNUC__)
24#define ECS_FUNC_NAME_FRONT(type, name) ((sizeof(#type) + sizeof(" flecs::_::() [with T = ") + sizeof(#name)) - 3u)
25#define ECS_FUNC_NAME_BACK (sizeof("]") - 1u)
26#define ECS_FUNC_NAME __PRETTY_FUNCTION__
28#define ECS_FUNC_NAME_FRONT(type, name) ((sizeof(#type) + sizeof(" __cdecl flecs::_::<") + sizeof(#name)) - 3u)
29#define ECS_FUNC_NAME_BACK (sizeof(">(void)") - 1u)
30#define ECS_FUNC_NAME __FUNCSIG__
32#error "implicit component registration not supported"
35#define ECS_FUNC_TYPE_LEN(type, name, str)\
36 (flecs::string::length(str) - (ECS_FUNC_NAME_FRONT(type, name) + ECS_FUNC_NAME_BACK))
39char* ecs_cpp_get_type_name(
41 const char *func_name,
46char* ecs_cpp_get_symbol_name(
48 const char *type_name,
52char* ecs_cpp_get_constant_name(
54 const char *func_name,
59const char* ecs_cpp_trim_module(
61 const char *type_name);
64void ecs_cpp_component_validate(
90 const char *type_name,
98void ecs_cpp_enum_init(
111int32_t ecs_cpp_reset_count_get(
void);
114int32_t ecs_cpp_reset_count_inc(
void);
ecs_id_t ecs_entity_t
An entity identifier.
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.