Здравствуйте, MTD, Вы писали:
Q>>И не используешь не по назначению функцию
MTD>Назначение функции hash — дать хеш.
Назначение функции hash — быть использованной стандартной библиотекой: «defines the default hash function used by the standard library»
©
MTD>Какой авторитетный источник.
Или не только cppreference.com, но и cplusplus.com недостаточно авторитетный источник?
MTD>В стандарте тоже написано, что использовать только с хеш-контейнерами?
Не знаю, у меня нет под рукой стандарта. Я его не покупал.
MTD>Почему тогда не сделана внутренней?
Чтобы можно было специализировать?
Q>>Будут при arity(k) > arity(M). Это пример был к тому, что твоя identity — никак не «идеальная».
MTD>Да, но лучше того, что сделали в Майкрософт.
Если используются просто как контрольная сумма, то конечно лучше.
MTD>Мне нужно через std::hash — я обобщенный код пишу.
Значит, тебе не нужно через std::hash, а нужно через свою хэш-функцию со специализацией для size_t.
MTD>Совсем не убедительно.
И тем не менее, случаи biased-данных, что ломают наивные сортировки или хэш-таблицы, периодически встречаются. Не у всех и не у каждого, но не исчезающе редко.