C++ 模板全特化中的函数特化

来源:互联网 发布:数据可视化实战 pdf 编辑:程序博客网 时间:2024/06/11 07:00
#include <iostream>using namespace std;template<typename T>bool isLess(T x, T y) {cout << "general version\n";return x < y;}template<>bool isLess<int*>(int* x, int* y) {cout << "specialization version\n";return *x < *y;}int main() {int n = 9, m = 3;cout << isLess(n, m) << endl;这个是匹配是int类型的模板类cout << isLess(&n, &m) << endl;//这个是匹配的模板类中的指针类型,因为我们已经替编译器实现啦指针类型,所有他就用我们的实现的啦,就不自己创建啦}
一旦为某个模板做了特化,编译器将不会再为该特化所涉及的类型生成对应的实例化
 特化目的是为了解决通用模板不能精确解决的问题
 模板的特化版本依赖于通用模板,通用模板必须在所有特化模板之前声明(定义)
原创粉丝点击