标准N4296::14.7.1/1
说:
类模板专门化的隐式实例化导致声明的隐式实例化,而不是类成员函数,成员类,作用域成员枚举,静态数据成员和成员模板的定义,默认参数或异常规范的隐式实例化;
然后让我们考虑以下代码:
template <class T>
class A
{
void foo(){ }
};
A<int> a; //Implicit instantiation here
int main(){ }
因此,当模板被隐式实例化时,它实际上是在没有任何成员函数的类中实例化的,因为我们没有使用过它。是真的吗
该类具有一个已声明但尚未定义的成员函数。
非模板类也允许这样做。(非虚拟)成员函数仅在使用时需要定义。
因此,在您的模板中,函数声明在实例化时必须有效,但函数主体尚不起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句