上边代码 没有做优化 纯手写
上边的功能已经可以实现 orm 和json 反射 …
下边简单说一说 方法反射
方法反射 实现有一个问题 横向入参 纵向入参
横向入参 func(xx1,xx2) { f(xx1,xx2); };
纵向入参 func(std::vectorstd::any params) { f(std::any_cast(params[0]),std::any_cast(params[1])); };
第一种横向入参 很显然 没办法动态构建调用
第二种纵向入参 可以动态构建并调用
两种方法测试
第一种横向入参
int get(std::string name,int age);
获取方法: method item = reflect::get_method(“get”);
std::vector<method_parameter> params = item.get_parameters();
现在知道参数类型位置 但是没办法 动态构建调用方法
这种调用方式只能写死 不能动态调用
item.invoke(“名称”,22);
//方法参数 注释懒得写
struct method_parameter
{
int index;
std::string name;
std::string type_name;
}
下一章 说纵向入参