|
Boost : |
From: Daniel Wallin (dalwan01_at_[hidden])
Date: 2004-04-22 05:02:11
Eric Niebler wrote:
>
> Daniel Wallin wrote:
>
>>
>> xxx::for_each(cont, _1 += 2);
>>
>> IMO C++ isn't missing a loop construct, it's missing a lambda construct.
>>
>
> IMO, C++ is missing a foreach construct *and* a lambda construct. :-)
> When the loop body is non-trivial, writing it as a lambda would make the
> code hard to follow.
Why? I don't see why there should be much of a difference.
foreach (x, v)
{
...
}
vs
for_each(v,
lambda(x) { // or whatever a lambda syntax would look like
...
});
> I shudder at the thought of a lambda that takes up
> more than a few lines. A foreach construct would make it easier to read,
> in that case.
But then again, if we had a type inference mechanism and a range library
the for-loop is easy enough:
for (auto r = range(v); r; ++r)
{
}
I would agree that there would be need for a simpler loop head if we had
to write every trivial loop on our own, but we have standard algorithms.
That said; there might be need for your macro right now, since we don't
have auto or lambda yet. :)
-- Daniel Wallin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk