美文网首页
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