将特定类型传递给类模板时的类生成

时间:2013-10-14 07:53:05

标签: c++ templates

我正在阅读有关模板的this教程,当涉及到功能模板时,我发现了这段代码和文本

template <class myType>
myType GetMax (myType a, myType b) {
return (a>b?a:b);
}

GetMax <int> (x,y);
  

当编译器遇到对模板函数的此调用时,它使用模板自动生成一个函数,该函数用作为实际模板参数(在本例中为int)传递的类型替换myType的每个外观,然后调用它。此过程由编译器自动执行,对程序员不可见。

那么在类模板的情况下实例化如何解决?那里的文档没有说明这个主题。这是否发生在

  1. 我创建了对象
  2. 首次调用该功能
  3. 每次调用函数
  4. 有人可以就这个话题说清楚吗

1 个答案:

答案 0 :(得分:2)

当编译器发现你将它用于<int>时,它将在编译时中实例化。 (其他一切都是编译器的具体实现)

在翻译单元中每个模板参数进行一次实例化。