C++14 の Generic Lambdas で可変長引数

Clang 3.4(svn) で試してみました。

[ソース]

#include <iostream>
#include <string>

int
main(){
    auto sum = [](auto x, auto&&... args){
        for(auto&& n : {args...}){
            x += n;
        }
        return x;
    };
    std::cout << sum(1, 2, 3) << std::endl;
    std::cout << sum(std::string("homu"), "mami", "mado") << std::endl;
    
    return 0;
}

[出力]

6
homumamimado


動いているようですね。
ラムダの構文上、再帰はできないんですがいろいろと使えそうです。

[コンパイラ]

  • clang++ (LLVM) 3.4 20131004(trunk)