New hashtable power 2 rehash policy
Jonathan Wakely
jwakely@redhat.com
Mon May 23 11:31:00 GMT 2016
On 17/05/16 22:28 +0200, François Dumont wrote:
>On 14/05/2016 19:06, Daniel Krügler wrote:
>>1) The function __clp2 is declared using _GLIBCXX14_CONSTEXPR, which
>>means that it is an inline function if and *only* if
>>_GLIBCXX14_CONSTEXPR really expands to constexpr, otherwise it is
>>*not* inline, which is probably not intended and could easily cause
>>ODR problems. I suggest to mark it unconditionally as inline,
>>regardless of _GLIBCXX14_CONSTEXPR.
>
>Maybe _GLIBCXX14_CONSTEXPR should take inline value previous to C++14 mode.
That's probably a good idea.
>For the moment I simply added the inline as done in other situations.
OK, thanks.
>>
>>2) Furthermore I suggest to declare __clp2 as noexcept - this is
>>(intentionally) *not* implied by constexpr.
>>
>>3) Is there any reason, why _Power2_rehash_policy::_M_next_bkt
>>shouldn't be noexcept?
>>
>>4) Similar to (3) for _Power2_rehash_policy's member functions
>>_M_bkt_for_elements, _M_need_rehash, _M_state, _M_reset
>For noexcept I throught we were only adding it if necessary. We might
>have to go through a lot of code to find all places where noexcept
>could be added. Jonathan will give his feedback.
I'm in favour of adding it anywhere that that definitely can't throw.
We don't *need* to do that everywhere, but it doesn't hurt.
>For the moment I have added it on all those methods.
Great.
>Thanks for feedback, updated and tested patch attached.
OK for trunk - thanks!
More information about the Libstdc++
mailing list