#include <iostream>
#include <vector>
#include <string>
using namespace std;
template <typename T>
void compare(T a, T b)
{
cout << "泛化" << endl;
}
// 模板函数的偏特化。因为函数重载功能就可以实现,所以模板函数的偏特化是被禁止的
template <typename T>
void compare<T*>(T* a, T* b)
{
cout << "偏特化" << endl;
}
template <>
void compare<int*>(int* a, int* b)
{
cout << "全特化" << endl;
}
// 模板函数的重载
//template<typename T>
//void compare(T* a, T* b)
//{
// cout << "重载" << endl;
//}
int main()
{
int a = 1, b = 2;
compare(&a, &b);//应该调用全特化的模板函数
return 0;
}
模板函数的特化与重载
最新推荐文章于 2024-09-27 17:45:54 发布