本人最近在学习《c++primer plus》(请勿喷,本人新手),在学习第8章函数探幽的过程中,对函数模版的学习总是感觉不太对劲,所以把自己一些不是很成熟的见解写出来,希望如果有大神看到有不对的地方指出来。万分感谢!
1.标准化函数模版
template <class Any> return_type func_name(parameter list);//模版声明
template <class Any> return_type func_name(parameter list){
....
}
2.显式具体化
template <> return_type func_name(parameter list);
template <> return_type fund_name(parameter list){
....
}
或
template <> return_type func_name<type_name>(parameter list);
template <> return_type fund_name<type_name>(parameter list){
....
}
3.显式实例化
template return_type func_name<type_name>(parameter list);
//该模版一般是在配合常规模版,且在使用之前去声明,然后编译器就会减少推断函数的个数,可以提高效率
4.关于同名函数使用的优先级
常规函数 > 显式具体化函数 > 显式实例化 > 常规模版