c++ 函数模版细化和非模版函数的区别,和优点

c++ 函数模版具体化和非模版函数的区别,和优点
c++ 函数模版具体化和非模版函数的区别,和优点.
struct  job { };
template <>void swap<job>{job &,job&}; //11
void swap(job &,job &);                       //22

1.2他们不是一样的吗?有什么区别啊?
------解决思路----------------------
所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。代码量可以少写很多,而且修改起来快速方便 。
------解决思路----------------------
看《exceptional C++》系列,关于函数解析过程的item
------解决思路----------------------
对于类型的特化而言,她们没有实际的区别。
但是,对于模板函数,你没有特殊要求,可以不特化这个 swap,而直接使用缺省的模板函数。
而对于非模板函数,就没有这个缺省值。