Я рассматриваю тип "карты карт" и задаюсь вопросом, будет ли считаться плохой практикой иметь два operator[]
с разными параметрами, имеющими разное значение.Предположим, что «внешняя» карта проиндексирована OuterKeyType
, а внутренние карты - InnerKeyType
, и у нас есть объект «карты карт» m
.Тогда поведение будет таким, что m[OuterKeyType]
будет возвращать (ссылка на) всю внутреннюю карту, проиндексированную этим ключом, в то время как m[InnerKeyType]
будет возвращать соединение, образованное некоторой операцией, для всех карт на проиндексированном элементе (можно предположить,все карты имеют одинаковый набор ключей).
Итак, этот дизайн нелогичен и плох, или он просто удобен и потому хорош?