c++0xメモ initializer_list , 型推論 , range-based forなど
const char[] → initializer_list
#include <vector> #include <string> #include <iostream> using namespace std; template <class T> void outarray(initializer_list<T> list){ for(auto x : list){ cout<<"*--- number "<<x<<" ---*"<<endl; } } template <> void outarray(initializer_list<const char*> list){ for(string s : list){ s = "*--- char* " + s + " ---*"; cout<<s<<endl; } } int main(){ outarray({ "a", "b", "c", "d" }); outarray({ 12, 23, 34, 45 }); outarray({ 1.2, 2.3, 3.4, 4.5 }); return 0; }
*--- char* a ---* *--- char* b ---* *--- char* c ---* *--- char* d ---* *--- number 12 ---* *--- number 23 ---* *--- number 34 ---* *--- number 45 ---* *--- number 1.2 ---* *--- number 2.3 ---* *--- number 3.4 ---* *--- number 4.5 ---*