gpt4 book ai didi

c++ - 如何编写将 C++ 代码作为输入的 C++ 代码生成器?

转载 作者:行者123 更新时间:2023-11-30 02:05:57 25 4
gpt4 key购买 nike

我们有一个 CORBA 实现,可以为我们自动生成 Java 和 C++ stub 。因为 CORBA 生成的代码很难使用,所以我们需要围绕 CORBA 代码编写包装器/帮助程序。所以我们有一个两步代码生成过程(是的,我知道这很糟糕):

CORBA IDL -> 恼人的 CORBA 生成代码 -> 有用的包装器/辅助函数

使用 Java 的反射,我可以检查 CORBA 生成的代码并使用它来生成其他代码。但是,因为 C++ 没有反射,所以我不确定如何在 C++ 端执行此操作。我应该使用 C++ 解析器吗? C++ 模板?

TLDR:如何使用生成的 C++ 代码作为输入来生成 C++ 代码?

最佳答案

您是否考虑过后退一步并使用 IDL 作为自定义代码生成器的源代码?可能您有一些包装器代码隐藏了诸如 duplicate、var、ptr 等东西。我们有一个基于 Ruby 的 CORBA IDL 编译器,目前可以生成 Ruby 和 C++ 代码。这可以通过客户生成器进行扩展,请参阅 https://www.remedy.nl用于 RIDL 和 R2CORBA。

另一种选择是查看 IDL 到 C++11 语言的映射,更多详细信息请参见 https://www.taox11.org .这种新的语言映射更易于使用,并使用标准类型和 STL 容器进行处理。

关于c++ - 如何编写将 C++ 代码作为输入的 C++ 代码生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9230938/

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