zengine-old/engine/3rdparty/zlib/include/refl/macro.h
2024-04-16 16:17:13 +08:00

35 lines
747 B
C++

#pragma once
/*
#define REGISTER_CLASS(cls) using _T = cls;
#define MAKE_STATIC_FIELD(member, ...) \
MakeStaticField(&_T::member, #member, __VA_ARGS__)
#define MAKE_FIELD(member, ...) \
Field<_T>::MakeField(&_T::member, #member, __VA_ARGS__)
#define REGISTER_FIELDS()\
consteval static auto __MakeStaticFields() {\
return std::array{\
MAKE_FIELD_LIST(MAKE_STATIC_FIELD)\
};\
}\
static auto __MakeFields() {\
return std::array{\
MAKE_FIELD_LIST(MAKE_FIELD)\
};\
}
#define MAKE_FIELD_LIST(MACRO) \
MACRO(x), \
MACRO(y), \
MACRO(z), \
MACRO(norm, {10,9}), \
MACRO(norm1, {1}), \
MACRO(norm2, {2}),
REGISTER_CLASS(vec3)
REGISTER_FIELDS()
#undef MAKE_FIELD_LIST
*/