cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавить больше специализаций hash для контейнеров #390

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +1, -0 Автор идеи: Alexander @ZaMaZaN4iK

Предлагаю добавить специализации struct hash для большинства контейнеров из Стандартной библиотеки таких как array, vector, tuple, valarray, deque, list, forward_list, map, set, multimap, multiset; адаптеров queue и stack; basic_string со пользовательским типом charT и аллокатором; для pair.

Подробно с предложением можно ознакомиться по этой ссылке

Буду рад обсудить здесь.

apolukhin commented 3 years ago

Andrey Davydov, 13 декабря 2018, 22:34 С stack и queue вы кажется загнули, у нас же есть доступ только к одному элементу.

Alexander, 14 декабря 2018, 1:40 Andrey Davydov, это только у публичного интерфейса есть доступ к одному элементу. Сам же хеш может спокойно иметь доступ и ко всем элементам.

Andrey Davydov, 14 декабря 2018, 9:40 Alexander, действительно, оказывается для stack-а есть operator ==, значит и hash считать тоже можно. По-моему, пользу от этого никакой, но и вреда, наверное не будет.

Alexander, 14 декабря 2018, 10:28 Andrey Davydov, из текущей версии предложения всё же было решено выпилить хеш для stack и queue. Оставили это как открытый вопрос для комитета - посмотрим, что там скажут на сей счёт.

yndx-antoshkka, 21 июля 2020, 9:43 В Праге предложение отклонили, сказав что оно блокирует более хорошее (но пяток лет не развивающееся) предложение по фреймворку для подсчёта хешей.