从头文件自动生成C ++文件?

时间:2009-09-10 10:59:06

标签: c++ code-generation

我有一堆带有各种类和函数声明的C ++头文件。到目前为止,当我编写声明的类和函数的C ++源文件实现时,我一直在手动:

  1. 将声明从头文件复制到相应的源文件。
  2. 删除“class classname {”和匹配的“};”
  3. 在所有类函数的名称上添加“classname ::”。
  4. 使用“{}”替换函数声明后的分号。
  5. 删除关键字“虚拟”和“静态”。
  6. 只有在完成所有工作之后,我才真正开始实现这些功能。我想知道是否有某个工具可以从“.h”文件自动生成“.cpp”文件,其中生成的“.cpp”包含“.h”文件中声明的函数的空存根(并没有给出内联定义)。一个UNIX友好的命令行工具将是首选。感谢。

    更新:跨平台工具将是理想的。如果没有,我正在使用Mac OS X 10.6。

4 个答案:

答案 0 :(得分:23)

Lazy C++似乎旨在解决这个问题。

答案 1 :(得分:5)

答案 2 :(得分:4)

eclipse CDT有一个“实现方法”功能,它可以做到这一点(一次一个方法)。还有一个“Generate Getters and Setters”功能,它还在函数体中生成适当的代码。

答案 3 :(得分:1)

我尝试过Lazy C ++,但似乎已经过时了,不再维护了。它也不支持最新的C ++ 14标准。

这就是我决定使用ANTLR4在Java中编写自己的工具的原因。这称为分数,您可以在此处找到它:https://github.com/underrated/Score

目前它处于起步阶段,可能充满了虫子,但我打算改进它。因此,如果您需要并尝试在项目的github页面上报告任何错误,请尝试一下。我会尽快修复它们。