c++ - 是一种预编译c++模板并获取c++源代码的方法
问题描述
在处理宏时,我们可以使用 (for gcc -dM) 选项让预编译器将宏定义分解到 c++ 源代码中。我正在寻找一种工具,更好的编译器选项来对模板执行相同的操作(即使以有限的方式)。如果我用多层模板和多重继承混合继承代码,那会很有帮助吗?尤其是那台机器必须准确地知道模板解释后代码的状态。只要代码的扁平结构暴露出来,我什至不会抱怨名称混乱。
解决方案
你真的不能那样做。
宏非常简单。它们只不过是文本替换。
然而,模板是语义的、假设的、理论的、学术的、不可知的、深奥的、邪恶的、空灵的果汁的一部分,它为你的爱好提供动力。
它们只存在于源代码和程序之间的空间中。
虚无,生死之间。
没有文字表示。只有一种感觉。一组想法。从你给它输入单词到它吐出动作的时候,你的编译器都拥有一种本能。
好吧,当然,理论上有一些人类可读的格式,编译器可以在其中转储模板实例的所有荣耀,但老实说:最简单的方法是吐出你在第一名。
所以,是的,不。
话虽如此,如果你真的很头疼,请学习使用 LLVM 后端 API。
推荐阅读
- c++ - GTest如何用自定义main替换gtest_main
- javascript - 使用 PDFBox 将计算脚本添加到 pdf 表单字段
- json - 通过 Groovy 脚本 (SoapUI) 提取 JSON 响应
- javascript - 如何在浏览器的弹出窗口中将 bpmn 图显示为图像?
- delphi - 将 OTP 系统添加到我的 Delphi 2010 应用程序(使用 Authy 或 Google Auth 等应用程序)的最简单方法
- rust - 为什么 rust 不可变引用可以调用 &mut self 方法?
- asp.net - ASP.NET 倒数计时器(小时、分钟、秒)
- python - 对列进行内部合并时保留第一个数据帧的索引
- python - 在每个pdf页面内绘制圆圈并偏移reportlab python
- hadoop - 选择最大查询返回 Apache Hive 中表中的所有行