【发布时间】:2016-10-12 05:51:54
【问题描述】:
背景
我正在创建与数据建模语言的 C++ 绑定。其中一部分涉及读取一组类型定义并将其转换为 C++ typdef。目前,就我而言,大约有 100 个。
问题
在我正在阅读的文件中,类型定义没有以任何方式排序。所以我最终可能会将一个类型定义为另一个尚未定义的类型。
在 C++ 中,问题基本上是这样的:
typedef typeA typeB;
typedef typeC typeA;
typedef double typeC;
所以显然这不起作用,但我可以以任何方式转发声明这些吗?
一个可能的解决方案当然是我在创建 C++ 文件之前处理这些定义:
typedef double typeC;
typedef typeC typeA;
typedef typeA typeB;
但我的问题仍然是,我可以转发声明 typdefs 以使其工作?
【问题讨论】:
-
IOW,您需要按拓扑顺序对输入类型定义进行排序