一、變長參數模板。 ios
#include <iostream> using namespace std; template <class T> void myprint(T v) { cout<<v; } template <typename T,typename... TAIL> void myprint(T t,TAIL... tail) { cout<<t; myprint(tail...); } int main(int argc,char* argv[]) { myprint("hello",222,"world",3.0f); return 0; }
獲取可變參數個數: spa
template <typename... Args> unsigned int get_param_count(Args... args) { return sizeof...(args); }
二、初始化列表initializer_list code
#include <iostream> #include <initializer_list> using namespace std; void myprint2(initializer_list<int> l) { for (auto i=l.begin();i!=l.end() ;++i ) { cout<<*i<<" "; } } int main(int argc,char* argv[]) { myprint2({1,2,3,4}); return 0; }