C ++我定义了一个模板化的类。我可以看到实例化后发生的(源)代码吗?

时间:2014-09-06 19:26:46

标签: c++ templates inline

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

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

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

然后我实例化它

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

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

1 个答案:

答案 0 :(得分:0)

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

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