#include #include #include "refl/uclass.h" #include "vertex.h" using namespace std; using namespace refl; struct vec3 { using UClass = class vec3_UClass; float x; float y; float z; float norm() { return x * y * z; } }; struct vec3_UClass : public UClass { array FList; constexpr static vec3_UClass BuildClass() { vec3_UClass cls{}; cls.name = type_name().View(); cls.size = sizeof(vec3); //offsetof(vec3, x) 很坑,相当坑 cls.FList[0] = cls.MakeMemberField(&vec3::x, "x"); cls.FList[1] = cls.MakeMemberField(&vec3::y, "y"); cls.FList[2] = cls.MakeMemberField(&vec3::z, "z"); return cls; } }; int main() { using uclass = TypeInfo::UClass; auto& res = TypeInfo::StaticClass; auto& res2 = TypeInfo::StaticClass; auto& res3 = TypeInfo::StaticClass; auto t1 = res3.FList[0]; //using t2 = t1::UClass; std::cout << sizeof(Name) << "Type2: " << typeid(vec3).name() << std::endl; cout << "hello world\n"; }