Мне надо хранить в классе соответствия между строками и числами. Порядок не важен, поэтому хочу использовать std::unordered_map, причём строки должны хэшироваться и сравниваться с помощью текущей локали через std::collate::compare() и std::collate::hash().
Как лучше объявить эту структуру в классе, чтобы пользователь не видел реализацию? Проблемы в том, что 1) надо хранить экземпляр std::collate в классе или определять логически непринадлежащие классу функции; 2) надо знать bucket_count для определения структуры, т.к. этот параметр идет до функций хэша и сравнения.
Следуем описанию с cppreference , используем шаблонные параметры класса :
std::unordered_map<std::string, int, std::collate::hash, std::collate::compare> my_map;
Проблем никаких нет, класс my_map хранит соответствие строки <---> числа, используя требуемую функцию хеширования и требуемую функцию сравнения.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости