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