我们有一个 CORBA 实现,可以为我们自动生成 Java 和 C++ 存根。由于 CORBA 生成的代码很难使用,因此我们需要围绕 CORBA 代码编写包装器/帮助器。所以我们有一个两步代码生成过程(是的,我知道这很糟糕):
CORBA IDL -> 烦人的 CORBA 生成的代码 -> 有用的包装器/辅助函数
使用 Java 的反射,我可以检查 CORBA 生成的代码并使用它来生成其他代码。但是,因为 C++ 没有反射,所以我不确定如何在 C++ 端执行此操作。我应该使用 C++ 解析器吗? C++ 模板?
TLDR:如何使用生成的 C++ 代码作为输入来生成 C++ 代码?
您是否考虑过退后一步,使用 IDL 作为自定义代码生成器的源代码?也许您有一些隐藏了重复、var、ptr 等内容的包装器代码。我们有一个基于 Ruby 的 CORBA IDL 编译器,当前可以生成 Ruby 和 C++ 代码。这可以通过客户生成器进行扩展,请参阅https://www.remedy.nl https://www.remedy.nl对于 RIDL 和 R2CORBA。
另一种选择是查看 IDL 到 C++11 语言映射,更多详细信息请参见https://www.taox11.org https://www.taox11.org。这种新的语言映射更容易使用,并且使用标准类型和 STL 容器来处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)