struct man{
int age;
double salary;
};
//显示具体化,指定模板函数中类型,意思是不要使用swap模板来生成函数定义,而是要使用专门为job类型显示定义的函数定义
//因为job是一个结构体,所以swap不可能是直接的利用临时变量做赋值,因此需要在这个函数中重新定义swap的方法,在调用的时候需要使用显示具体化,不要用swap模板来生成函数定义,而是使用我么自己写的方法
tempalte <> void swap<man>(man &m1,man &m2);
//显示实例化,可以直接命令编译器创建特定的实例
//因为int类型可以使用模板中定义的临时变量做赋值来实现,所以可以使用模板函数定义的方法,只是让编译器创建特定类型的就行了,比如int、double...
template void swap<int>(int &,int &);
template <typename T>
void swap(T &t1,T &t2){
T tmp;
tmp = t1;
t1 = t2;
t2 = tmp;
}
template <> void swap<man>(man &m1,man &m2){
int age_tmp;
double salary_tmp;
age_tmp = m1.age;
m1.age = m2.age;
//.....不写了.....
}
一码胜千言。。。。。