C++0x - ラムダ式(N2413)
以前に比べていくらか読みやすくなっていますね
N2413 - Lambda Expressions and Closures: Wording for Monomorphic Lambdas
double min_salary = ... double u_limit = 1.1 * min_salary; std::find_if(employees.begin(), employees.end(), <&>(const employee& e) (e.salary() >= min_sarary && e.salary() < e_limit));
これは
<&>(const employee& e) (e.salary() >= min_sarary && e.salary() < e_limit)
こう書いてもいい、と
<&>(e) (e.salary() >= min_sarary && e.salary() < e_limit)
int ar = { 3, 1, 4 }; int sum = 0; int factor = 2; std::for_each(ar, ar + 3, <>(int value; &sum, factor) (sum += factor * value));
けっこう読みやすい
そして、<>になってる部分を<&>にすればこう書ける、と
std::for_each(ar, ar + 3, <&>(int value) (sum += factor * value));
個人的には好きです。<>()->(...)
よりはだいぶマシ
よし!しばらくはC++0xネタでいこう