[PATCH][Hashtable 4/6] Clean local_iterator implementation

François Dumont frs.dumont@gmail.com
Sun Nov 17 21:03:00 GMT 2019


Simplify local_iterator implementation. It makes local_iterator and 
iterator comparable which is used in debug containers.

     * include/bits/hashtable_policy.h (_Node_iterator_base()): New.
     (operator==(const _Node_iterator_base&, const _Node_iterator_base&)):
     Make hidden friend.
     (operator!=(const _Node_iterator_base&, const _Node_iterator_base&)):
     Make hidden friend.
     (_Local_iterator_base<>): Inherits _Node_iterator_base.
     (_Local_iterator_base<>::_M_cur): Remove.
     (_Local_iterator_base<>::_M_curr()): Remove.
     (operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
     Remove.
     (operator!=(const _Local_iterator_base&, const _Local_iterator_base&)):
     Remove.
     * include/debug/unordered_map (unordered_map<>::_M_invalidate): Adapt.
     (unordered_multimap<>::_M_invalidate): Adapt.
     * include/debug/unordered_set (unordered_set<>::_M_invalidate): Adapt.
     (unordered_multiset<>::_M_invalidate): Adapt.

Tested under Linux x86_64.

François

-------------- next part --------------
A non-text attachment was scrubbed...
Name: hashtable#5.patch
Type: text/x-patch
Size: 9356 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20191117/0e20eac0/attachment.bin>


More information about the Libstdc++ mailing list