Python ( lambdas), ++ 03 Java ( Java , ). , , . - :
Python:
(foo(x) if x.f == target else bar(x) for x in bazes)
++:
struct FooBar {
Sommat operator()(const Baz &x) const {
return (x.f == val) ? foo(x) : bar(x);
}
FooBar(int val) : val(val) {}
int val;
};
vector<Sommat> v(bazes.size());
std::transform(bazes.begin(), bazes.end(), v.begin(), FooBar(target));
, ++ Java, - " , : , , , , ?" [*]
- , . Java , ++ TU, , , . , Java .
, ++. Python , ++ Java, - . , typedef , , , " ".
[*] : " for?", , ...