可變引數,也就是讓函式可以接受可變數量引數的函式。
使用方法:
//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...