【问题标题】:Is the a way to pre-compile templates of c++ and get the c++ source是一种预编译c++模板并获取c++源代码的方法
【发布时间】:2019-07-28 23:44:47
【问题描述】:

在处理宏时,我们可以使用 (for gcc -dM) 选项让预编译器将宏定义分解到 c++ 源代码中。我正在寻找一种工具,更好的编译器选项来对模板执行相同的操作(即使以有限的方式)。如果我使用多层模板继承代码并混合多重继承,那会很有帮助吗?尤其是那台机器必须准确地知道模板解释后代码的状态。 只要代码的扁平结构暴露出来,我什至不会抱怨名称混乱。

【问题讨论】:

  • 模板和宏没有可比性。您要解决的问题是什么。不,不是关于“预编译模板”的。这是你认为谁的解决方案是获取“预编译模板”的问题,所以你问的是解决方案,而不是真正的问题。
  • 也许“显式实例化”对您的情况有用?
  • cppinsights.io 可能会有所帮助。
  • @SamVarshavchik 我试图理解有人留给我修复的代码,它看起来像旧的“goto”加香料的 PL/1,所有继承和模板都覆盖在上面;

标签: c++ templates


【解决方案1】:

你真的不能那样做。

宏非常简单。它们只不过是文本替换。

但是,模板是语义的、假设的、理论的、学术的、不可知的、深奥的、撒旦的、空灵的果汁的一部分,它为你的爱好提供动力。

它们只存在于源代码和程序之间。

生死之间的虚无。

没有文字表示。只有一种感觉。一组想法。从你给它输入单词到它吐出动作的时候,你的编译器都拥有一种本能。


好吧,当然,理论上有一些人类可读的格式,编译器可以在其中转储模板实例化的所有荣耀,但说实话:最简单的方法是吐出你提供的 C++首先是它。

所以,是的,不。


话虽如此,如果您真的想头疼,请学习使用 LLVM 后端 API。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-09-28
  • 2015-11-17
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多