Hi
Here is another proposal with:
- No attempt to remove const key
- No attempt to use assignment operator
- noexcept move constructor; I slightly modify a static assertion so that
it checks that _M_bucket_index is noexcept qualified which depends on the
noexcept qualification of the functors involved in bucket computation

could you please take care of the profile-mode bits too? Let's try to keep
the 3 modes in sync, I noticed only by chance.

Does **anyone** use profile mode?
It has no maintainers, few (if any) users, and is an ongoing maintenance burden.

For sure it's a burden. I have no personal objections to removing it,
but as long as it remains in, the testsuite must be clean, as for
everything else.