Make vector<bool> iterator operators hidden friends

François Dumont frs.dumont@gmail.com
Sat May 11 13:30:00 GMT 2019


On 5/10/19 3:59 PM, Jonathan Wakely wrote:
> 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.
>
Indeed, I had put it in the ChangeLog but forgotten to adapt code.

Attached patch committed.

François


-------------- next part --------------
A non-text attachment was scrubbed...
Name: bvector_iterator.patch
Type: text/x-patch
Size: 4768 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20190511/70d5d9a1/attachment.bin>


More information about the Libstdc++ mailing list