我得到了以下运行参考
using namespace std;
#include <iostream>
template<typename a> struct function
{
void self1(){ cout << "hello world 1111" << endl; }
};
template<typename a> struct function<a&>
{
void self2() { cout << "hello world 2222" << endl; }
};
int main()
{
function<int> a;
a.self1();
function<int&> b;
b.self2();
return 0;
}
结果代码:
hellow world 1111
heloow world 2222
想问的第一个“结构功能”,第二个“结构之间的关系船功能“
第二个被分类为第一个”模板专业化“吗? (似乎不是)
我可以看到,第二个是基于第一个。 (通过删除第一个,它是不可编译的)。但是
b.self1() is not defined.
因此,不知何故第二次重新定义了结构到一个新的?
是的,这是模板专业化。 –
@GillBates Thx,我通常的理解是模板专门化会定义类型为bool/int等等。现在它被定义为一个参考。我会更深入地了解这些知识。 – thundium