コンピュータや音楽の事書いてます

c++0xメモ initializer_list , 型推論 , range-based forなど

const char[] → initializer_list → string の暗黙型変換など

#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 ---*

gcc.exe (GCC) 4.6.1 (MinGw/Windows)