#pragma once #include #include "field.h" namespace refl { struct AnyArgs { void* data; int num; int size; bool isMemoryOwner{false}; AnyArgs(const sarray& args,const sarray& params,void* memory = nullptr); ~AnyArgs(); int Size(); const sarray ToSArray(); constexpr static Offset GetArgsSize(const sarray& args, const sarray& params); template consteval static Offset GetArgsSize(const sarray& args); }; class AnyView : public Any{ public: const FieldPtr* cache{ nullptr }; AnyView(const void* ptr, const UClass* cls) : Any(ptr,cls) {} public: template bool Get(const Name& name, T& t); template bool Set(const Name& name, const T& t); bool Invoke(const Name& name,const sarray& ArgsList); bool Invoke(const Name& name,svector& ArgsList); bool Invokes(const Name& name, const sarray& ArgsList); bool Invokes(const Name& name, svector& ArgsList); AnyView Parent(); }; }