C++14のgeneric lambdaを使ってみる

C++11のラムダ式は,引数の型を指定する必要があった.

auto func = [](int a){ return a+1; };

これは,結構面倒で,例えば std::vector> に対して std::for_each する時だと

std::vector<std:map<int,int>> x;
std::for_each(x.begin(), x.end(), [](const std::map<int,int>& x){ … });

という感じで書かなければならなかった.
C++14からは,これに auto が使える.
つまり,上のコードは,

std::vector<std:map<int,int>> x;
std::for_each(x.begin(), x.end(), [](auto& x){ … });

となり,スッキリする.
これは現在 clang や,gcc4.9 で使えるようになっていて,
コンパイル時に -std=c++1y のオプションを追加するとコンパイルできる.

“C++14のgeneric lambdaを使ってみる” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です