25% of programmers work time is spended by checking if the required code already exist.
I'm searching for a base class for implementing the safe bool idiom.
bool_testable<> in Boost.Operators looks promising.
The reference mentions that:
bool_testableprovides the antithesis ofoperator bool, such that the expressionif (!p)is valid, whilst also makingoperator boolsafer by preventing accidental conversions to integer types. ...bool_testable<>prevents these accidental conversions by declaring a private conversion operator to signed char, and not defining the body.
The safest thing to do is to not have implicit conversion to bool.
Make that conversion explicit.
Then the name, if chosen well, can also help people understand what it's all about.
Cheers & hth.,
来源:https://stackoverflow.com/questions/6883901/is-there-a-safe-bool-idiom-helper-in-boost