I'm thinking of replacing all the instances of safe bool idiom by explicit operator bool
in code which already uses C++11 features (so the fact that older compilers don't recognized explicit conversion operators will not matter), so I'd like to know if it can cause some subtle problems.
Thus, what are all the possible incompatibilities (even the most minute ones) that can be caused by switching from old and dull safe bool idiom to new and shiny explicit operator bool
?
EDIT: I know that switching is a good idea anyway, for the latter is a language feature, well-understood by the compiler, so it'll work no worse than what's in fact just a hack. I simply want to know the possible differences.
language-lawyer
. I'd like pure facts that follow from the standard itself, not an advice on good practices. Gotta clarify that, but thanks anyway. – Telson