#pragma once #include "UTemplate/Type.hpp" #include #include using Ubpa::Name; using Ubpa::type_name; namespace refl { class UClass; using Method = void(*)(...); using Offset = uint32_t; enum FieldFlag:uint32_t { FIELD_NONE_FLAG = 0, FIELD_MEMBER_FLAG = 1 << 0, FIELD_ATTRIBUTE_FLAG = 1 << 1, FIELD_METHOD_FLAG = 1 << 2, }; struct FieldPtr { using Data = std::variant< Offset, // offset Method // method >; Name name; const UClass* type; Data data; uint32_t flag; }; }