Я хочу написать свой собственный неупорядоченный контейнер, и мне нужно знать, могу ли я хранить пары ключ / значение или, если-когда хэш и ключ отличаются, мне нужны кортежи хеш / ключ / значение. Для этого мне нужно знать во время компиляции, возвращает ли std::hash<K>
значение без изменений.
C ++ 20, кажется, определяет std::identity
, но даже тогда я не уверен, смогу ли я сделать что-то подобное (в чем я сомневаюсь):
if (std::hash<K>() == std::identity<K>())
Clang-7, с которым я работаю, использует набор специализаций шаблонов для определения своих хеш-идентификаторов. Есть ли лучшее решение?