c++元信息.

#include <常用>
#define 造对(t) 双<串,推导(t)>{#t,t}<型名 T>常式 静 内联 动 动作(T 常&t){中 t;}<型名 T,型名 F,型名...O>
常式 静 内联 动 动作(T&t,F&f,O&...o){
    中 动作(连接元组(t,造元组(造对(f))),o...);
}

#define 元信(...) \
动 信息(){中 动作(元组<>(),__VA_ARGS__);}

构 人{
    串 n;整 y;
    元信(n,y); 
};//有字段名.
//定义一个支持变参的meta函数
空 主(){
    人 p{"哎呀",1984};
    动 t=p.信息();
    静断(是相同值<推导(t),元组<<,&>,<,&>>>,"不同");//串底层是utf8.
    //从这里说明如何进行<串=>各种不同类型>的映射
    打印(<0>(t).第一);//f,不知为什么.
    打印(<0>(t).第二);//哎呀
    打印(<1>(t).第一);//f
    打印(<1>(t).第二);//1984
}


参考地址

posted @ 2020-11-08 14:33  zjh6  阅读(17)  评论(0)    收藏  举报  来源