美文网首页
GeekBand-STL 第1周

GeekBand-STL 第1周

作者: zzhydf | 来源:发表于2016-06-20 14:54 被阅读0次

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(特性):

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

相关文章

网友评论

      本文标题:GeekBand-STL 第1周

      本文链接:https://www.haomeiwen.com/subject/ohsorttx.html