GeekBand-STL 第1周

template分类: class template,function template


template在编译时会检查两次,1检查模板本身是否符合语法,2编译期间,检查使用时代入具体类型后,生成的具体类或函数是否符合语法。

对于class template 来说必须显示指定typename
对于function template 可以根据参数进行推导(对于有多个参数的function,经行推导返回类型时,参数的类型必须一样,不然无法推导),不支持自动类型转换。

当有参数列表符合模板及普通函数时,优先调用普通函数,当没有匹配是,考虑普通函数的参数转换版本

对于template<class T>与template<typename T>建议使用typename

class template:

定义:与function template 类同
对于使用stack<stack<int> >时,应空一格,免得与operator>>混淆
特化:要对某些类型可以进行优化,不同实现,则可以对类模板进行特化
template<>
class A<int>{ }
为int特化
偏特化:
    原申明: template<typename T1,typename T2> class A{....}
    偏特化: template<typename T>class A<int,T>{......}
                  template <typename T> class A<T,float>{......}
   偏特化是要注意不要造成调用时的二义性

泛型编程

traits(特性):

当返回类型溢出和参数类型相同时,可能溢出,为解决这种情况为每一种参数类型关联一种返回类型,方

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.模板观念与函数模板 课程主要内容 C++模板简介 泛型编程 容器 进阶 C++模板简介   generic t...
    hui1429阅读 344评论 0 0
  • 再读高效c++,颇有收获,现将高效c++中的经典分享如下,希望对你有所帮助。 1、尽量以const \enum\i...
    橙小汁阅读 1,256评论 0 1
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,544评论 1 51
  • C++ 模板简介 一、模板 使用模板的目的就是能够让程序员编写与类型无关的代码。 模板是一种对类型进行参数化的工具...
    MinoyJet阅读 2,428评论 0 12
  • 孩子,我要求你读书用功不是因为我要你跟别人比成绩,而是我希望你将来会拥有选择的权利,选择有意义的工作,而不是被迫谋...
    晴转多云11阅读 305评论 0 0