C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板举例
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板举例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//用來終止遞歸并打印最后一個元素的函數
//此函數必須在可變參數版本的 print 定義之前聲明
template<typename T> ostream &print (ostream &os, const T &t)
{return os ? t; / / 包中最后一個元素之后不打印分隔符
}// 包中除了最后一個元素之外的其他元素都會調用這個版本的 print
template<typename T, typename...Args> ostream &print(ostream &os, const T &t, const Args &... rest)
{os ? t ? ", ";//打印第一個實參return print (os, rest...);//遞歸調用,打印其他實參
}
eg. print (cout, i, s, 42) ; // 包中有兩個參數
| print (cout, i, s, 42) | i | s , 42 |
| print (cout, s, 42 ) | s | 42 |
| print (cout, 42 ) 調用非可變參數版本的print |
warnning: 當定義可變參數版本的 print 時, 非可變參數版本的聲明必須在作用域中。否則, 可變參數版本會無限遞歸。
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板举例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha