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