欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

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

发布时间:2023/11/30 c/c++ 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C++ 模板全特化中的函数特化 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转载:http://blog.csdn.net/rain_qingtian/article/details/15815251

[cpp] view plaincopy print?
  • #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;//这个是匹配的模板类中的指针类型,因为我们已经替编译器实现啦指针类型,所有他就用我们的实现的啦,就不自己创建啦  
  • }  
  • 一旦为某个模板做了特化,编译器将不会再为该特化所涉及的类型生成对应的实例化
     特化目的是为了解决通用模板不能精确解决的问题
     模板的特化版本依赖于通用模板,通用模板必须在所有特化模板之前声明(定义)

    总结

    以上是生活随笔为你收集整理的C++ 模板全特化中的函数特化的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。