可變參模板模板模板引數

2021-10-06 21:50:00 字數 1450 閱讀 8908

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

//namespace _nmsp1

;classa;

template

<

typename..

.args>

class

myclasst

;//主模板

template

<

>

class

myclasst

<

>

//0個模板引數的特化版本};

template

<

typename first,

typename..

. others>

class

myclasst

>

//: private myclasst//偏特化

myclasst

(first parf, others.

..paro)

:m_i

(parf)

,m_o

(paro...

)//, myclasst(paro...)

first m_i;

myclasst> m_o;

//組合關係(復合關係)};

void

func()

}namespace _nmsp2};

//需要有乙個特化版本,用於結束遞迴呼叫

template

<

int mymaxcount,

typename..

.t>

class

myclasst

< mymaxcount, mymaxcount, t...

>};

template

<

typename..

.t>

void

myfunct

(const tuple>

&t)//可變參函式模板

void

func()

}namespace _nmsp3}}

;template

<

typename t>

using myvec = vector>

;//這種套路,寫法很固定

template

<

typename t>

using mylist = list>

;//這種套路,寫法很固定

void

func()

}int

main()

可變參模板續 模板模板引數

include include include include include using namespace std 從類模板引入 template t u叫模板引數,更具體叫型別模板引數 前面有typename template typename t,型別模板引數 template class ...

C 11 14之可變參類模板與模板模板引數

通過tuple和遞迴呼叫展開引數包 總結模板 模板引數 組合關係 復合關係 class bclass a組合關係展開引數包案例template typename first,typename.others class myclass myclass first parf,others.paro m ...

C 可變參模板

可變引數模板是乙個接受可變數目引數的模板函式或模板類,在模板引數列表中,typename 指出接下來的引數表示0個或多個型別的列表,乙個型別名後面跟省略號表示0個或多個給定型別的非型別引數的列表。在函式引數列表中,如果乙個引數的型別是乙個模板引數包,則此引數也是乙個函式引數包。可變引數模板通常是遞迴...