I switch between 0 and 1. I get easily swayed by the last example i saw. I reserve true and false for question type functions e.g. bool isSomethingSet()
I like what you said about using the !.
if (!doSomething() )
error_occured
So i'll stick with that (again i'm being swayed by last example). Thanks for the post.
IMO true/false > 1/0 because 1/0 forces it to be converted to bool (which although it isn't a problem, it could be on a compiler that thinks zero is true or something). And yes, exceptions are generally the best way to go, since they force you to do the error checking, as well as allowing you to save your return value for actual data.