Как мне узнать, реализован ли std :: hash в терминах std :: identity? - PullRequest
0 голосов
/ 17 мая 2019

Я хочу написать свой собственный неупорядоченный контейнер, и мне нужно знать, могу ли я хранить пары ключ / значение или, если-когда хэш и ключ отличаются, мне нужны кортежи хеш / ключ / значение. Для этого мне нужно знать во время компиляции, возвращает ли std::hash<K> значение без изменений.

C ++ 20, кажется, определяет std::identity, но даже тогда я не уверен, смогу ли я сделать что-то подобное (в чем я сомневаюсь):

if (std::hash<K>() == std::identity<K>())

Clang-7, с которым я работаю, использует набор специализаций шаблонов для определения своих хеш-идентификаторов. Есть ли лучшее решение?

...