可変長引数を initializer_list で受け取る

同じ型を受け取る場合に手段としては、こういう方法もありかな?

[ソース]

#include <initializer_list>
#include <iostream>

template<typename T>
void
disp(std::initializer_list<T> t){
    for(auto n : t){
        std::cout << n << std::endl;
    }
}

int
main(){
    disp({1, 2, 3});
    disp({"hoge", "foo", "piyog"});

    // no matching function for call
    // disp({1, "foo", 3.14f});
    return 0;
}

[出力]

1
2
3
hoge
foo
piyog

[コンパイラ]

  • g++ (GCC) 4.7.0 20110924 (experimental)