Первоначальный вопрос был
Это считается хорошей практикой?
Проблема с безопасным преобразованием bool была очень актуальна на практике, но, к счастью, теперь она решается стандартами.
Но решение, если этот подход уместен, является вопрос дизайна.
Вводя такую «проверку достоверности», вы фактически заявляете, что ваши объекты могут находиться в недопустимом состоянии.То есть, говоря с точки зрения информатики, вы добавили новое отдельное значение в область значений, представленных вашими объектами.Так называемое нижнее значение
Наиболее ярким примером для области значений с таким свойством является указатель.Указатель может ссылаться на различные области памяти, но он также может быть NULL
(неверно).
Таким образом, нам нужно спросить себя: действительно ли такое нижнее значение отражает природу вещей, которые мы хотим смоделировать?с нашими классами - и - действительно ли нам нужно охватить этот аспект природы в нашей модели?
Опыт показывает, что нижние значения склонны к ошибкам, их легко забыть икак правило, больше ответственности, чем актив.Если вы можете упорядочить свой код таким образом, чтобы ваши объекты не могли быть недействительными, ваш код становится проще, его легче читать, понимать и поддерживать.