[patch] libstdc++/67374 declare valarray begin/end overloads in <iterator>

Jonathan Wakely jwakely@redhat.com
Thu Aug 27 19:54:00 GMT 2015


On 27/08/15 21:48 +0200, Marc Glisse wrote:
>On Thu, 27 Aug 2015, Jonathan Wakely wrote:
>
>>The std::cbegin function in <bits/range_access.h> can't call the
>>std::begin function in <valarray> unless it knows about it, so we need
>>to declare the valarray overloads in <bits/range_access.h>.
>
>Hmm, do you remember why valarray has an ugly overload of std::begin 
>instead of a nice member function begin like every other container ? 
>It should at least be legal to implement it this way.

No, sorry, I have no idea.

C++11 added the begin non-members, and then C++14 added the
cbegin non-member, which calls std::begin.

I'm not convinced it's supposed to work with valarray, but it's
confusing that it doesn't when std::begin(const valarray<T>&) exists.




More information about the Libstdc++ mailing list