gpt4 book ai didi

c++ - 通过某种形式的反射对 C++ 中的 C 数据结构进行通用访问?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:33 24 4
gpt4 key购买 nike

是否有以通用方式访问 C/C++ 数据结构(嵌套结构、指针数组、各种其他基本数据类型)的反射框架?

如果没有,有什么提示可以最好地解决这个问题吗?

我正在为 a large MS Windows C API 编写测试软件具有数十到数百种不同的结构,其中一些结构包含指向结构的嵌套指针数组,最多可达几个级别。

对于测试,数据结构需要根据以字符串形式给出的测试描述预先设置值并在之后进行检查。目前,这是以一种相当单调乏味(并且不一致且容易出错)的方式编程的,我想改变这种方式。

我正在为所有使用的数据类型构造考虑一些模板,这些模板允许通过某种路径访问数据结构中的值。

我不需要它完全自动化,为结构中的每个特定字段做一些工作(比如一两行代码)就可以了。

最佳答案

您正在描述一种称为反射的特性,C/C++ 不支持这种特性。

在 C++ 中执行此操作的方法是解析源文件,然后生成更多源代码来执行您需要的操作,例如查找每个类,以及嵌套类,查找每个成员函数等。

编写 C++ 解析器很困难,但有许多现有的免费实现可用。

关于c++ - 通过某种形式的反射对 C++ 中的 C 数据结构进行通用访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com