是一种预编译c ++模板并获取c ++源代码的方法

时间:2019-07-28 23:44:47

标签: c++ templates

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

1 个答案:

答案 0 :(得分:0)

你真的不能那样做。

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

但是,模板是语义,假设,理论,学术,不可知的,深奥的,撒旦的,空灵的果汁的一部分,

它们仅存在于源代码和程序之间的空间中。

生与死之间的空虚。

没有文字表示。只是一种感觉。一整套的想法。从编译器输入单词开始到吐出动作的时间,编译器一直保持这种本能。


好吧,可以肯定的是,从理论上讲,有一种人类可读的格式,编译器可以将其所有实例都转储为模板实例化,但是老实说:最简单的方法是吐出您提供的C ++首先。

所以,是的。


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