基于模板的C/C++;代码生成 对于C++的模板基础代码生成器,有没有特别建议生成重复代码生成?(不是基于UML/MATLAB模型或其他高级的东西)。对于这个领域的新手,有没有好的通用教程(不是基于工具的)

基于模板的C/C++;代码生成 对于C++的模板基础代码生成器,有没有特别建议生成重复代码生成?(不是基于UML/MATLAB模型或其他高级的东西)。对于这个领域的新手,有没有好的通用教程(不是基于工具的),c,code-generation,C,Code Generation,我发现它看起来不错,但它需要一个陡峭的学习曲线。我更喜欢一些类似eclipse的IDE插件,易于使用,最重要的是有好的教程。代码生成的基本概念非常简单,而且人们的需求也非常多样化,因此有很多选择 是一个函数库,它是在标准C/C++预处理器之上构建的,它使得使用预处理器来进行代码生成变得更容易。它不像其他选项那样灵活,找出预处理器错误可能很棘手,但它只使用标准语言功能这一事实大大简化了它的使用并将其集成到构建中 如果你知道Python,那就有了 谷歌的一些项目使用 有许多通用模板解决方案(Pyt

我发现它看起来不错,但它需要一个陡峭的学习曲线。我更喜欢一些类似eclipse的IDE插件,易于使用,最重要的是有好的教程。

代码生成的基本概念非常简单,而且人们的需求也非常多样化,因此有很多选择

  • 是一个函数库,它是在标准C/C++预处理器之上构建的,它使得使用预处理器来进行代码生成变得更容易。它不像其他选项那样灵活,找出预处理器错误可能很棘手,但它只使用标准语言功能这一事实大大简化了它的使用并将其集成到构建中
  • 如果你知道Python,那就有了
  • 谷歌的一些项目使用
  • 有许多通用模板解决方案(Python等)。它们通常用于生成HTML和XML,但也适用于代码
  • 用您选择的脚本语言将某些东西拼凑在一起也很容易
如果不了解更多关于您的需求以及您喜欢使用的工具,我无法给出更具体的建议


我对提供Eclipse插件的任何东西都不熟悉。

如果您了解Python,那么Cog可以被视为轻量级解决方案:

查看我关于使用M2T-JET的类似问题的答案,M2T-JET是一个基于Eclipse的轻量级模板生成器。JET是语言不可知论者,从示例中可以看出,它相当容易使用

我很欣赏使用Lua来完成这项任务,使用类似或其他无数基于Lua的预处理器。使用Lua而不是Python的好处是,如果需要,您可以将源代码包含到模板处理器中,并将一个基本的Lua安装与所提供的任何内容一起提供。然后,您可以像往常一样将Lua和后续模板文件的编译添加到构建过程中


我建议不要使用基于Python的解决方案,原因之一是:为了满足每个开发人员对完全不同但不兼容的版本的使用而使用各种Python,这很烦人。如果您选择使用一种无法嵌入到树中的语言,您将需要确保预计算版本可用。

晚会迟到,但我建议您使用我发现的唯一一种工具,它可以完成上述工具所做的一切,而且还可以做得更多。它具有用于嵌入式生成的类似Python Cog的功能,它具有基于模板的生成,如Templet或Pump。它还具有相当有用的保护区功能,因此您可以根据需要自定义代码并重新生成


我用它来生成所有锅炉板C++代码以及对SQL、CONFIG、JavaScript等项目的配置。它摇晃。简单、清洁、可维护。我甚至开始使用它来完成一些基本任务,比如从.cpp文件自动生成头文件声明:-)