新手求教:显示具体化模板和非模板函数有什么不一样?

时间:2020-12-25 11:19:00
刚学到函数模板,希望有人能帮忙解答。

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非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本

#1


新手求教:显示具体化模板和非模板函数有什么不一样?

#2


template<>void swap<job>(job &,job &)  //1显示具体化原型

void swap(job &,job &)         //2非模板原型
应该是这个样子才对
非模板函数优先级最高,优先匹配
然后是特化版本
然后是通用版本