Make vector<bool> iterator operators hidden friends

Jonathan Wakely jwakely@redhat.com
Fri May 10 13:59:00 GMT 2019


On 10/05/19 14:40 +0100, Jonathan Wakely wrote:
>On Thu, 9 May 2019 at 06:49, François Dumont wrote:
>>
>> Hi
>>
>>      Patch similar to the one I just apply for deque iterator including
>> NRVO copy ellision fix.
>>
>>      * include/bits/stl_bvector.h
>>      (operator==(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Make hidden friend.
>>      (operator<(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (operator!=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (operator>(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (operator<=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (operator>=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (operator-(const _Bit_iterator_base&, const _Bit_iterator_base&)):
>>      Likewise.
>>      (_Bit_iterator::operator+(difference_type)): Likewise and allow NRVO
>>      copy elision.
>>      (_Bit_iterator::operator-(difference_type)): Likewise.
>>      (operator+(ptrdiff_t, const _Bit_iterator&)): Make hidden friend.
>>      (_Bit_const_iterator::operator+(difference_type)): Likewise and allow
>>      NRVO copy elision.
>>      (_Bit_const_iterator::operator-(difference_type)): Likewise.
>>      (operator+(ptrdiff_t, const _Bit_const_iterator&)): Make hidden friend.
>
>These const_iterator overloads seem to be missing the NRVO fix.

But the patch looks good otherwise, so OK for trunk with the NRVO
changes. Thanks.




More information about the Libstdc++ mailing list