template <class U>
struct A
{
template<class T>
void foo();
};
如您所见,该声明是void foo();
有效的函数声明。因此,第一个要点适用:
该声明在模板声明应
- 声明或定义函数,类或变量,或
- 定义类模板或嵌套在类模板中的类的成员函数,成员类,成员枚举或静态数据成员,或
成员功能在第二个项目符号中被提及只是为了强调
template<class T>
void A<T>::foo() {}
已验证; 该声明在此模板的声明(void A<T>::foo() {}
)是一个成员函数的定义。“或”不是唯一的,因为上面的声明仍然是函数定义。
现在清楚的是,这仅涉及定义,因为
template<class T>
void A<T>::foo();
仍然无效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句