几种特殊的模板偏特化

模板特化详解
0.基本的偏特化(所有模板参数都特化)
1None.giftemplate <typename T1,typename T2>
2ExpandedBlockStart.gifContractedBlock.gifclass A dot.gif{};
3None.gif
4None.giftemplate <>
5None.gifclass A <intint>
6ExpandedBlockStart.gifContractedBlock.gifdot.gif{};
7None.gif

1.部分模板参数特化
 1None.giftemplate <typename R, typename Arg1>
 2None.gifclass A
 3ExpandedBlockStart.gifContractedBlock.gifdot.gif{};
 4None.gif
 5None.giftemplate <typename Arg1>
 6None.gifclass A <void, Arg1>
 7ExpandedBlockStart.gifContractedBlock.gifdot.gif{};
 8None.gif
 9None.gifvoid main()
10ExpandedBlockStart.gifContractedBlock.gifdot.gif{
11InBlock.gif    A <intint> a1;
12InBlock.gif    A <voidint> a2;
13ExpandedBlockEnd.gif}
2. 一种特殊的特化
 1None.gif#include <stdio.h>
 2None.gif
 3None.giftemplate<typename Signature> class function;
 4None.gif 
 5None.giftemplate<typename R >
 6None.gifclass function<R (void)>
 7ExpandedBlockStart.gifContractedBlock.gifdot.gif{
 8InBlock.gif    public:
 9ExpandedSubBlockStart.gifContractedSubBlock.gif    function()dot.gif{
10InBlock.gif        printf("function<R (void)>\n");
11ExpandedSubBlockEnd.gif    }

12ExpandedBlockEnd.gif}
;
13None.gif
14None.giftemplate<typename R ,
15None.gif          typename T0>
16None.gifclass function<R ( T0)>
17ExpandedBlockStart.gifContractedBlock.gifdot.gif{
18InBlock.gif    public:
19ExpandedSubBlockStart.gifContractedSubBlock.gif    function()dot.gif{
20InBlock.gif        printf("function<R ( T0)>\n");
21ExpandedSubBlockEnd.gif    }

22ExpandedBlockEnd.gif}
;
23None.gif
24None.gif void main()
25ExpandedBlockStart.gifContractedBlock.gif dot.gif{
26InBlock.gif    function <int ()> f0;
27InBlock.gif    function <int (int)> f1;
28ExpandedBlockEnd.gif }

29None.gif 
30None.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值