Я знаю, что большинство людей думают, что в качестве плохой практики, но когда вы пытаетесь заставить свой общедоступный интерфейс класса работать только со ссылками, сохраняя указатели внутри и только когда это необходимо, я думаю, что нет способа вернуть что-то, говорящее, что значение вы ищете, не существует в контейнере.
class list { public: value &get(type key); };
Предположим, что вы не хотите, чтобы в общедоступном интерфейсе класса отображались опасные указатели, как вы возвращаете не найденное в этом случае исключение?
Каков ваш подход к этому? Вы возвращаете пустое значение и проверяете его пустое состояние? Я действительно использую подход throw, но я вводил метод проверки:
class list { public: bool exists(type key); value &get(type key); };
Поэтому, когда я забываю проверить, что это значение существует сначала, я получаю исключение, это действительно исключение.
Как вы это сделаете?