From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-05-10 13:53:14
Thorsten Ottosen wrote:
> "Peter Dimov" <pdimov_at_[hidden]> wrote in message
>> for( [type] [identifier] : [expr] )
>> Let e of type E be the value of [expr]. For each iterator i in the
>> - [ e.begin(), e.end() ) when E is not an array type;
>> - [ e, e + N ) when E is T[N],
>> executes the compound statement
>> [type] [identifier] = *i;
>> doesn't require library support.
> but it wouldn't work with pair<iterator,iterator> without an adapter.
Correct. I think that the benefits of not having to include <iterator> and
confining this to a pure core extension not requiring library support
outweigh the costs.
pair<iterator, iterator> is not the proper way to express an iterator range
anyway; its use in the standard library only serves to highlight the lack of
iterator_range<iterator>, or even range<iterator>, if you prefer.
>> One reasonable extension
> perhaps. C++ is typed language.
>> would be to allow [type] to be omitted, ...
This form is even more typed than the other, because it doesn't let you
accidentally supply a wrong type.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk