gpt4 book ai didi

c++ - 如何扩展/"preprocess"C++模板代码

转载 作者:IT老高 更新时间:2023-10-28 12:30:16 26 4
gpt4 key购买 nike

为了正确调试 C++ 中的复杂宏,我通常在它们上运行预处理器,以便准确查看生成的代码的样子。

有类似“预处理”模板代码的方法吗?

最佳答案

一种方法(依赖于编译器)是在每个编译器步骤之后使用转储。我写了一个小程序:

template<class T>
T square(T n)
{
return n * n;
}

int main(void)
{
square<int>(3);
square<float>(3.0);
}

然后:

g++ -fdump-rtl-all test.cc

这给了我一堆文件。看看(在我的例子中)test.cc.218.dfinish:

;; Function int main() (main)
;; Function T square(T) [with T = int] (_Z6squareIiET_S0_)
;; Function T square(T) [with T = float] (_Z6squareIfET_S0_)

关于c++ - 如何扩展/"preprocess"C++模板代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193867/

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