Variadic Templates 引数を range-based for でループさせる

同じ型であればこれで問題ないかな。

[ソース]

#include <iostream>

template<typename... Args>
void
disp(Args... args){
    for(auto n : { args... }){
        std::cout << n << std::endl;
    }
}

int
main(){
    disp(1, 2, 3);
    disp("hoge", "foo", "piyo");
//  型が違うので NG
//  disp("hoge", 1, 3.14f);
    return 0;
}

[出力]

1
2
3
hoge
foo
piyo

[コンパイラ]

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