template<>void swap<job>(job &,job &) //1显示具体化原型
void swap<job>(job &,job &) //2非模板原型
其中显示具体化是针对特定类型而编写的,需要为其单独编写定义代码,这样就使得显示具体化和非模板函数好像变得一样了。我想知道这两种方式的区别和各自的优势。
2 个解决方案
#1
#2
template<>void swap<job>(job &,job &) //1显示具体化原型
void swap(job &,job &) //2非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本
void swap(job &,job &) //2非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本
#1
#2
template<>void swap<job>(job &,job &) //1显示具体化原型
void swap(job &,job &) //2非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本
void swap(job &,job &) //2非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本