关于C++模板的特化与偏特化

从实现角度来说,与其说偏特化是特化的一种特殊形式,还不如说特化是偏特化的一种特殊形式,从实现而言,特化因为指定了具体数据(对象)类型而显得固定;而偏特化则更灵活,适用范围更广。

举例来说,NBA球员是一类模板,乔丹是其特化,偏特化可以是类乔丹球员。或者全明星是偏特化,而其中某一人是特化之后的结果。他们都从属与nba球员模板,但应用范围不同。

或者以行政区划为例,省是一种模板,山东省是特化后的模板,华东五省是偏特化后的模板;北京是特化后的模板;直辖市是偏特化后的模板,只能说北京是直辖市的一种特殊情况,而不能说直辖市是北京的特殊情况。

----------

至于传统经常认为偏特化是特化的一种特殊形式,另一方面解读:(服刑人员)释放这个概念。释放指服刑期满正式释放,而“放出来了”(包括保外就医,正式释放)也可以认为是一种释放,所以“放出来了”(保外就医,取保候审之类)你可以视作是释放的一种特殊形式。(正式)释放手续固定,相当于特化,而“放出来了”则代表更多的情况,相当于偏特化,从实现角度,(正式)释放实现起来流程固定;而保外就医和取保候审这种(正式)释放之外的某种(摊上官司却)获得自由的方式更难概括,涵盖更多种实现流程。

-----------

模板这种事物,包含抽象的意思。以类这个概念为例,模板可以视作基类概念,特化是基类的子类,而偏特化可以视作介于他们之前的继承类。即模板涵盖情况最多,偏特化次之,特化是最底层(脑补一幅类图),以老子道德经角度,一生二,二生三,三生万物,模板概念是一,特化是万物,偏特化是二和三。当然你也可以认为二和三属于万物中的特殊情况,而且在应用中,二和三的重要性不如一和万物那么强调,所以把二和三归到万物的层次也是恰当的。这样偏特化就属于特化的特殊情况了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值