Есть ли в для C++14 map с поддержкой constexpr хэша?
Есть ли в для C++14 map с поддержкой constexpr хэша?
Хочется, чтобы где можно хэш считался при компиляции, но семантика осталась как у обычного std::unordered_map.
С поддержкой find/insert/erase/...
Миллиона ключей не надо. Не плохо, если можно свою хэш функцию указать.
rustler2000 , расскажи про задачу, для решения которой тебе потребовался такой контейнер.
Думаю, твою задачу можно решить все так же на этапе компиляции, но без использования ассоциативных контейнеров.
Из коробки такого нет, насколько мне известно. Так можно сделать, но все входные данные должны быть известны на этапе компиляции. Довольно редкий случай на практике.
Пример - разбор json/xml/yaml - имена полей нужные коду приложения известны. "Парсеры" в большенстве своем генерят "общие" структуры (sax\yajl\... не считаем), по грубому на std::map. Случай не редкий.
rustler2000, Проблема тут только в том, что ключ нужно хэшировать в определённый момент времени, например при поиске. И если этот поиск происходит не в рантайме а в компайл-тайме, то всё вроде бы неплохо, но если вам надо искать в рантайме, то как вам поможет компайл-тайм хэширование? Программа-то уже откомпилированна.
В std::map вообще нет хэширования. Там дерево под капотом.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.