特化和偏特化

本文介绍了C++中的模板特化和偏特化概念,详细阐述了两者之间的区别。模板特化是为所有模板参数指定具体类型,而偏特化则仅对部分模板参数进行特化。通过示例解释了全特化和偏特化的用法,并探讨了模板特化在函数和类模板中的应用限制。文章最后讨论了标准中关于全特化的术语,并提醒读者理解其本质比拘泥于词汇更为重要。
摘要由CSDN通过智能技术生成
Partial Template Specialization能够让你在模板(Template)的所有可能的实体中特化出一组子集.

  1.模板的特化(template specialization):

    例如,定义如下的一个模板:
    template<class Window, class Controller>
    class Widget
    {
      ... 泛化实现代码 ...
    };
    然后你可以像下面那样明确地加以特化:
    template<>    //注意:template后面的尖括号中不带任何内容;
    class Widget<ModalDialog, MyController>
    {
      ... 特化实现代码 ...
    };
    其中ModalDialog和MyController是你自己另外定义的类;有了这个Widget的特化定义之后,如果你以后定义了Widget<ModalDialog, MyController>对象时,编译器就会使用上述的特化定义,如果定义了其它泛型对象,那么编译器就是用原本的泛化定义;这就是模板的特化.

  2.Partial Template Specialization(模板偏特化)

从英文单词可看出意思为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值