<xhash>
: Get rid of tricks for transparent overloads of hash containers
#5208
+99
−23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes overload-merging tricks (which supports implementing WG21-P1690R1) for hash containers by re-implementing the shapes of the involved functions as specified in standard. Currently, the trick is buggy when the transparent overloads are enabled and the arguments are brace initializer lists (see DevCom-10819520).
Another approach can be changing the default template argument from
void
tokey_type
. However, this would make more bogus uses accepted, although it might be still conforming. I guess the safest way is "Do What The Standard Says" here.Fixes #5207.