c++ 反射方法反射

上边代码 没有做优化 纯手写
上边的功能已经可以实现 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;
}

下一章 说纵向入参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值