Борьба с ложными состояниями: взгляд из C++ на Rust‑дилеммы и реактивный код
На днях наткнулся на отличную статью Никиты Тимофеенко «Вам не нужны bool и Option» (далее [1]). Автор со стороны Rust‑разработки поднимает фундаментально правильный вопрос: кодировать состояния системы разрозненными флагами вроде succeeded: bool и failed: bool — это плохой тон, ведущий к трудноуловимым багам.
Система типов должна делать некорректные состояния запрещенными на этапе компиляции.В C++ сообществе эта идея, разумеется, тоже не нова.
habr.com