Make vector<bool> iterator operators hidden friends

François Dumont frs.dumont@gmail.com
Thu May 9 05:49:00 GMT 2019


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.

Tested under linux x86_64 normal mode.

Ok to commit ?

François

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


More information about the Libstdc++ mailing list