我定义了一个模板化的类.我能看到实例化后出现的(源)代码吗

I defined an templated class. Can I see the (source) code that occurs after it is instantiated?

本文关键字:实例化 代码 一个 定义      更新时间:2023-10-16

C++我定义了一个模板化的类。

我希望看到类实例化后的源代码。例如,假设我有一个来自标准库的类似std::vector的类:

template <typename T>
class Vector { ... } // this is in the .h and .inl

然后我实例化它

vector<int> v = new vector<int>();

我能看到编译器将创建的内联代码吗?

没有源代码,模板实例化不是文本替换步骤。要检查生成的代码,您应该使用反汇编程序/调试器或转储(如果编译器支持)生成的代码。模板实例化是一个编译步骤,尽管它可能会变得非常复杂,但它生成的是代码而不是文本。

宏经历的过程与您所描述的类似:它们在预处理阶段进行处理,它们只是纯文本替换