#include <iostream>
#include <thread>
using namespace std;
template <typename T>
void show(T girl) // 向超女表白的函數(shù),參數(shù)可能是超女編號(hào),也可能是姓名,所以用T。
{
cout << "親愛的" << girl << ",我是一只傻傻鳥。\n";
}
// 遞歸終止時(shí)調(diào)用的非模板函數(shù),函數(shù)名要與展開參數(shù)包的遞歸函數(shù)模板相同。
void print()
{
cout << "遞歸終止。\n";
}
// 展開參數(shù)包的遞歸函數(shù)模板。
template <typename T, typename ...Args>
void print(T arg, Args... args)
{
//cout << "參數(shù): " << arg << endl; // 顯示本次展開的參數(shù)。
show(arg); // 把參數(shù)用于表白。
//cout << "還有" << sizeof...(args) << "個(gè)參數(shù)未展開。" << endl; // 顯示未展開變參的個(gè)數(shù)。
print(args...); // 繼續(xù)展開參數(shù)。
}
template <typename...Args>
void func(const string& str, Args...args) // 除了可變參數(shù),還可以有其它常規(guī)參數(shù)。
{
cout << str << endl; // 表白之前,喊句口號(hào)。
print(args...); // 展開可變參數(shù)包。
cout << "表白完成。\n";
}
int main(void)
{
//print("金蓮", 4, "西施");
//print("冰冰", 8, "西施", 3);
func("我是絕世帥歌。", "冰冰", 8, "西施", 3); // "我是絕世帥歌。"不是可變參數(shù),其它的都是。
}
可變參數(shù)模板
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- usingnamespacestd; class Foo { public: template<typename....
- 編寫一個(gè)函數(shù),他可以接受任意數(shù)量參數(shù),參數(shù)類型只需要是cout能夠顯示的即可
- 可變參數(shù)模板 原文鏈接: http://blog.csdn.net/xiaohu2022/article/deta...