zoukankan      html  css  js  c++  java
  • 模板特化,全特化,偏特化,全部特化,部分特化的含义

    模板特化,任何针对模板参数进一步进行条件限制设计的特化版本。《泛型思维》

    全特化就是全部特化,即针对所有的模板参数进行特化。《c++ primer》
    偏特化就是部分特化,即针对部分模板参数进行特化。《c++ primer》

    全特化偏特化的定义不是很严格,所以有的时候不容易让人理解。

    举例如下:
    template<class U,class T>
    class C{};
    全特化:
    template<>
    class C<int,char>{};
    偏特化:
    template<class U>
    class C<U,int>{};
    大家应该对上面的例子应该没有什么异议吧。

    再看下面的一个例子:
    template<class T,class U>
    class C<T*,U*>{};
    这属于全特化还是偏特化呢?一般大部分人都认为是偏特化,但是按照上面的定义似乎应该是全特化(所有的模板参数都特化了呀)。

    我觉得没有必要在名词上作口舌之争,全特化也好,偏特化也好,只要我们掌握它的意义即可。折中的来看,我认为就可以称之为模板特化,毕竟它符合模板特化的含义。

    顺便说一下:《c++ primer》这本书没有很好的说明全特化偏特化的含义,造成很多的歧义,我对这个问题也是迷茫了好久。

  • 相关阅读:
    输出重定向
    echo带颜色输出
    shell学习视频目录
    css盒模型
    jQuery表格模糊搜索
    mysql基础语法3
    mysql基础语法2
    mysql基础语法1
    pyspider框架的使用
    quill富文本框图片上传重写
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2709401.html
Copyright © 2011-2022 走看看