Boost.Phoenix を使用して、数行のコードで構成され、値を「返す」ラムダ関数を作成して、std::transform
.
このような:
std::transform(a.begin(), a.end(), b.begin(),
(
//Do something complicated here with the elements of a:
statement1,
statement2,
statement3
//Is there a way to return a value here?
)
);
これstd::for_each
を使用すると完全に機能std::transform
しますが、コンマ演算子が を返すため、コンパイルできませんvoid
。このようなラムダ関数から値を返すにはどうすればよいですか?
編集:最初に書いたことが自分のやりたいことについて誤解を招いたため、コードフラグメントを変更しました。