Если вы используете optional
, вам необходимо определить, установлено ли оно, прежде чем его использовать.Это реализуется с помощью (по сути, bool) преобразования.
Я не думаю, что пользователь не хотел, что на самом деле там написано: они должны знать, что это optional
ичто они проверяют его на достоверность.
Поскольку преобразование является частью boost::optional
, я не знаю ни одного способа его прямого удаления.
Конечно, вы можетереализовать класс-оболочку для вашей конкретной потребности int
, которая предоставляет только те части интерфейса optional
, которые вам нужны, возможно, с явной функцией, проверяющей действительность.его неконстантная версия при работе с optional
s, чтобы сделать явным то, что происходит.