#pragma once #ifndef META_GEN_{{class_name}}_PROXY_H #define META_GEN_{{class_name}}_PROXY_H #include "test.h" // namespace meta { // namespace reflection { class ::{{class_namespace}}::{{class_name}}::{{class_name}}_Class : public ::meta::reflection::Class { public: {{class_name}}_Class(); static void Register(); private: void AddBaseClassProxy(std::shared_ptr<::meta::reflection::Class> base) ; void AddMethodProxy(std::shared_ptr<::meta::reflection::Method> method) ; void AddFieldProxy(std::shared_ptr<::meta::reflection::Field> field) ; }; class ::{{class_namespace}}::{{class_name}}::{{class_name}}_Field : public ::meta::reflection::Field { public: {{class_name}}_Field(const std::string& name, std::shared_ptr<::meta::reflection::Class> parent); protected: ::meta::reflection::any GetImpl(void* instance) const override; void SetImpl(void* instance, const ::meta::reflection::any& value) const override; }; class ::{{class_namespace}}::{{class_name}}::{{class_name}}_Method : public ::meta::reflection::Method { public: {{class_name}}_Method(const std::string& name, std::shared_ptr<::meta::reflection::Class> parent); protected: ::meta::reflection::any InvokeImpl(void* instance, const std::vector<::meta::reflection::any> ¶ms) const override; }; // } // namespace reflection // } // namespace meta #endif // META_GEN_{{class_name}}_PROXY_H