类似于Python的C++内省技术

2024-04-29 06:58:13 发布

您现在位置:Python中文网/ 问答频道 /正文

在C++中有内省技术,就像Python中的吗?

例如:我希望获得有关特定对象的更多信息,而不必遍历头文件或引用回cpp引用。

我是在问一个恰当的问题,还是朝着错误的方向走?

更新:

根据下面的答案,这个答案与我的问题有关:How can I add reflection to a C++ application?


Tags: to对象答案add信息头文件application错误
2条回答

C++有一个内置的RTTI系统,尽管它大部分是毫无价值的。因此,改为使用自定义自省。

C++中的内省是用两种主要方法实现的:预处理步骤,扫描CPP文件并创建数据库/生成CPP代码;使用模板。我写了一些关于模板技术的文章。

如果您对使用内省而不是实现内省更感兴趣,我建议您查找clReflect,或者您可以尝试cpfg

Python和C++是完全不同的语言。通常情况下, 完成后,几乎所有的类型信息都会丢失 编译。你能做的就是问一个物体 一个特定的类(使用typeid),或者如果它是 一个特定的类(使用dynamic_cast)。理论上,你可以 还可以使用typeid::name()获取类型的名称,但是 实践中,标准并没有对 返回值,而有些编译器(例如g++)不提供 任何有用的东西。

相关问题 更多 >