#include namespace refl { class UClass; class FieldPtr; class ObjectView { public: const char* ptr; const UClass* cls; const FieldPtr* cache{nullptr}; ObjectView(void* ptr, const UClass* cls) : ptr((const char*)ptr), cls(cls){} public: template bool Get(const Name& name, T& t); template bool Set(const Name& name, const T& t); template bool Invoke(const Name& name, Args... args); template bool InvokeRet(const Name& name,R& ret, Args... args); }; }