可變引數模板

2021-08-09 10:37:29 字數 507 閱讀 7663

可變引數,也就是讓函式可以接受可變數量引數的函式。

使用方法:

//m_print()也就是0引數將會在可變引數函式m_print(t x,args... args)

呼叫void m_print() {}

//可變引數模板

可變引數模板m_print(t x, args... args)通過遞迴呼叫m_print(args...);或者m_print("string", std::string("abc")),到最後引數包args為空的時候,也就是引數為空,呼叫m_print()函式來結束遞迴。

可變引數模板

乙個可變引數模板就是乙個接受可變數目引數的模板函式或模板類。可變數目的引數被稱為引數包 parameter packet 存在兩種引數包 模板引數包 template parameter packet 表示零個或多個模板引數 函式引數包 function parameter packet 表示零個或...

可變引數模板

三個點代表此處的u為一包型別,b為一包形參,可以輸入任意多的引數,sizeof.可以檢視一包引數中的引數個數,不是占用的位元組數。引數包的展開 如何去處理引數包裡的每乙個引數呢,這裡就需要用到遞迴的展開方法 void func templatevoid func const t a,const u ...

C 可變引數模板

c 可變引數模板 flyfish c 98版本不支援 c 11版本以上支援 arguments 是引數包 parameter pack 類 classname 可以接受可變引數個數 template class custom tuple custom tuple c1 custom tuple c2...