Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
Variable.h File Reference

Member variable registration utilities for the reflection system. More...

Classes

struct  Raven::RegisterMember< Parent, Member >
 Register a member variable for reflection. More...

Namespaces

namespace  Raven

Macros

#define REFLECT_MEMBER_INTERN(Type, Member, ID)
#define REFLECT_MEMBER(Type, Member)
 Register a member variable for reflection via static initialization.

Detailed Description

Member variable registration utilities for the reflection system.

Provides helpers for registering member variables with the reflection system, associating them with their owning types and capturing layout information such as offset, size, and alignment.

Registration is typically performed via static initialization.

Author
SkyHorizon3

Macro Definition Documentation

◆ REFLECT_MEMBER

#define REFLECT_MEMBER ( Type,
Member )
Value:
REFLECT_MEMBER_INTERN(Type, Member, __COUNTER__)
#define REFLECT_MEMBER_INTERN(Type, Member, ID)
Definition Variable.h:66

Register a member variable for reflection via static initialization.

Expands to a static registration helper that captures the member name, offset, size, and alignment, and inserts it into the owning type's metadata.

This macro must be used at namespace scope.

◆ REFLECT_MEMBER_INTERN

#define REFLECT_MEMBER_INTERN ( Type,
Member,
ID )
Value:
inline static RegisterMember<Type, decltype(Type::Member)> CONCAT(reflect_member_, ID){#Member, &Type::Member, offsetof(Type, Type::Member)};
#define CONCAT(a, b)
Definition ReflectionUtils.h:90