RE: [boost] Re: First lambda

Yeah, but do you propose to make local names visible inside the anonymous function, or not? If you do, you open a big can of worms for implementations (recursive nested functions, need I say more?), if you don't, BLL can still do things that anonymous functions can not. Anonymous functors could help some, but their syntax won't be quite as compact as your example above.
Now, to complicate matters, what if I wish to access v in the inner anonymous function? Can you also do that? Example:
std::for_each(vv.begin(), vv.end(), void (vector<int> const& v) { std::for_each(v.begin(), v.end(), void (int x) { cout << x << endl; do_fomething_with(v); // <<--here } } ); Joel de Guzman
This gets ugly. As you want to "import" only one the variables you declare. For the previous example with std::accumulate. e.g.. implementation. template <class InputIterator, class T, class BinaryOperation> T accumulate<InputIterator v, InputIterator l, T i, BinaryOperation bin_op) { while (v != l) i = bin_op(i, *v++); return i; } int i = 0; unsigned long n = std::accumulate( xs.begin(), xs.end(), 0UL, auto (auto lhs, auto rhs) { return ( lhs + rhs.count) + i; // Which "i"!!!! } ); And this is where BLL wins big, it has a mechanism for importing variables into the fn. And no I don't have a good solution for this. -Gary-
participants (1)
-
Powell, Gary