Car*_*ndo 15 c c++ instance-variables
假设我们在C++中有一个结构:
struct foobar
{
int age;
bool hot;
String name
};
Run Code Online (Sandbox Code Playgroud)
有没有办法以编程方式查询上面的结构来提取其实例成员?例如:
String[] members = magicClass.getInstanceMembers(foobar);
Run Code Online (Sandbox Code Playgroud)
成员会有["age", "hot", "name"]它的价值观.
可能?我问的原因是因为我的结构随着时间的推移发生了变化(添加/删除了变量).我希望能够使用此保存的数据创建自动生成Lua文件.
谢谢
Cha*_*via 14
不,标准C++不支持这种类型的反射.有一些"hacky"方法使用宏来创建一个type-traits-esque模板,该模板将使用SFINAE静态地确定某个特定类是否具有某个数据成员或成员函数,但实际上并不会枚举每个成员类.
实际上,C++在设计时考虑到了一定的理念,即使不是适得其反,也很难支持我们在C#/ Java等高级语言中看到的运行时反射类型.看看为什么C++没有反射?对这个问题进行彻底的讨论.