gpt4 book ai didi

c++ - 是否可以在编译 (g++) 之前使用实例化模板查看 C++ 代码?

转载 作者:IT老高 更新时间:2023-10-28 23:01:44 25 4
gpt4 key购买 nike

g++ 编译器有一个生成宏扩展代码 (-E) 的标志,所以我想知道是否有办法在模板实例化之后在实际编译发生之前查看程序代码?

最佳答案

嗯,越接近阅读编译器生成的AST/ABT:

  • AST:抽象语法树
  • ABT:抽象绑定(bind)树

前者代表编译器理解的语法 View ,后者类似于绑定(bind)的after解析(即,这里的a实际上是在 3 行之前声明的变量或 foo 对应于该 header 中定义的函数...)。

Clang 允许转储它的 AST...实际上是 ABT,实际上,它现在正在改进;偷偷开发者预览:

int Test __attribute__((visibility("default")));

int main(int argc, char** argv) {
int x __attribute__((aligned(4))) = 5;
int y = 2;
for (;;)
if (x != y++)
break;
return (x * y);
}

enter image description here

通常您应该看到模板是如何在此处实例化的。

注意:要获得它,您需要将 -ast-dump 传递给 clang 前端。

关于c++ - 是否可以在编译 (g++) 之前使用实例化模板查看 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com