Есть ли безопасный помощник идиомы bool в boost?

25% времени работы программистов тратится, проверяя, существует ли уже существующий код.

Я ищу базовый класс для реализации безопасной идиомы bool.

Ответ 1

bool_testable<> в Boost.Operators выглядит многообещающим.

В ссылке упоминается, что:

bool_testable обеспечивает антитезу operator bool, что справедливо выражение if (!p), а также делая operator bool более безопасным, предотвращая случайные преобразования целочисленные типы.... bool_testable<> предотвращает эти случайные конверсий путем объявления частного оператора преобразования к подписанному char, и не определяя тело.

Ответ 2

Самое безопасное, что нужно сделать, - не иметь неявного преобразования в bool.

Сделать это преобразование явным.

Тогда имя, если оно выбрано хорошо, также может помочь людям понять, в чем дело.

Приветствия и hth.,