Subject: Re: [Boost-bugs] [Boost C++ Libraries] #12229: intrusive::unordered_set<T>::rehash() broken
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-07-31 12:17:36
#12229: intrusive::unordered_set<T>::rehash() broken
-----------------------------------------+------------------------
Reporter: Christian Kaiser <boost@â¦> | Owner: igaztanaga
Type: Bugs | Status: new
Milestone: To Be Determined | Component: intrusive
Version: Boost 1.61.0 | Severity: Problem
Resolution: | Keywords:
-----------------------------------------+------------------------
Comment (by igaztanaga):
Previous behaviour was an unintended side effect. That behaviour was also
broken if the hash was stored in the hook (as it would not be recalculated
and stored). A new "full_rehash" function has been added in
https://github.com/boostorg/intrusive/commit/4546ffba1d8af0c97072456779a5f0d44067a43c
in order to achieve the desired "force rehash" behaviour. This function
requires some invariants to be preserved (previous equal keys should
produce equal hashes and previous uniqueness should be respected as
otherwise rehashing will produce a broken container) so that only hashes
are calculated.
Please check the proposed solution to see if it's useful when the language
is changed and a new erasure+insertion would be more expensive than just
rehashing.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12229#comment:1> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC