Bartosz Milewski seems to like D more than C++ now :)

Szymon Gatner noemail at gmail.com
Fri Sep 20 03:09:40 PDT 2013


On Friday, 20 September 2013 at 10:02:58 UTC, Szymon Gatner wrote:
> On Friday, 20 September 2013 at 10:00:32 UTC, Jacob Carlborg 
> wrote:
>> On 2013-09-20 11:37, Szymon Gatner wrote:
>>
>>> If only std algorithms took containers (by that I mean things 
>>> that
>>> container for accepts too) as arguments (and not 
>>> iterators)... even in
>>> the form of new functions like foreach_all, transform_all etc.
>>
>> Can't a container be a range as well?
>
> Not sure what you mean but C++ has no concept of a range. 
> Apparent there is now a study group but atm standard algos are 
> crippled compared to "container for".

To clarify what I mean by crippled: standard algorithms were 
suppose to make code more expressive and one of the ways they 
would do it was to eliminate tedious iterator-based for loops:

instead of

for (typename Contaniner<T>::const_iterator it = c.begin(), it != 
c.end() ++it) {..}

you could do:

std::for_each(c.begin(), c.end(), [](T&) {...};)

(of course this all only makes any sense with lambdas, without 
them it is really hard to argue about expressivenes in the first 
place)

but now we can do this:

for (auto& v : c) {}

which is even nicer than the for_each version. Algorithms do more 
than iterating of course, but it is a shame they didn't evolve as 
basic constructs.


More information about the Digitalmars-d mailing list