Этот код ужасен, и не только с виду, но и неся кучу скрытых и очень опасных моментов (в которых легко отстрелить себе ногу).
Я вижу несколько возможных решений. Либо find будет принимать компаратор умеющий сравнивать элемент из set с переданным в find значением, либо map придется параметризовывать не только компаратором но и "отображением" (по-моему что-то такое появилось в ranges). Проблематично тк четвертым параметром шаблона у set идет Allocator который если сделать пятым то поломается совместимость, а если добавить после него то станет некрасиво и поломается то что аллокатор всегда последний
Очень часто в кодовых базах я встречал что-то вроде
Этот код ужасен, и не только с виду, но и неся кучу скрытых и очень опасных моментов (в которых легко отстрелить себе ногу).
Я вижу несколько возможных решений. Либо find будет принимать компаратор умеющий сравнивать элемент из set с переданным в find значением, либо map придется параметризовывать не только компаратором но и "отображением" (по-моему что-то такое появилось в ranges). Проблематично тк четвертым параметром шаблона у set идет Allocator который если сделать пятым то поломается совместимость, а если добавить после него то станет некрасиво и поломается то что аллокатор всегда последний