C ++模板和内存分配

时间:2019-04-26 19:31:10

标签: c++ templates memory compilation

我得到了是非题:

“编译器在遇到功能模板定义后立即在内存中创建功能模板的实例。”

我对模板的理解是,编译器在读取函数定义时将生成必要的代码。我不确定内存分配。这是对还是错?

1 个答案:

答案 0 :(得分:1)

为清楚起见:

模板不是代码。这是生成代码的秘诀。该代码是在其他代码第一次使用模板将生成的代码时生成的。

因此,模板函数仅在其他代码使用它(调用它或获取其地址)时才变为实际函数。

函数模板定义是如何在函数中编写代码的秘诀。

如果我们假设“内存”,那么发问者的意思是“程序代码所在的(可能是虚拟的)存储”,那么我想我会回答 false

这是因为在编译器遇到函数模板定义时未编写函数,而是在其他代码首次使用时编写的。