Re: [Boost-bugs] [Boost C++ Libraries] #12229: intrusive::unordered_set<T>::rehash() broken

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