C++ で匿名関数を定義するにはどうすればいいですか? [重複] 質問する

C++ で匿名関数を定義するにはどうすればいいですか? [重複] 質問する

C++ でインライン関数を定義できますか?inlineコンパイラの最適化を引き起こすキーワードではなく、ラムダ関数について説明しています。

ベストアンサー1

C++11 を追加ラムダ関数言語に追加します。言語の以前のバージョン (C++98 および C++03) と、C 言語の現在のすべてのバージョン (C89、C99、および C11) では、この機能はサポートされていません。構文は次のようになります。

[capture](parameters)->return-type{body}

たとえば、ベクトル内のすべての要素の合計を計算するには、次のようにします。

std::vector<int> some_list;
int total = 0;
for (int i=0;i<5;i++) some_list.push_back(i);
std::for_each(begin(some_list), end(some_list), [&total](int x) {
  total += x;
});

おすすめ記事