Sam Partington wrote: > > No, I agree. You're right, much better to squint at error messages than to > try and diagnose unexpected behaviour. Plus the messages I compared against > were not all that bad to look at anyway, and all of them said something to > the effect of "can't convert class 'A' to 'int' or something.
Fine. > > The VC issue bothers me, as I don't think I fully understand what > > exactly happens. Doesn't the compiler give any additional messages to > > explain > > what exactly is ambiguous for operator&&? Does anyone know this > > problem > > and has a work-around? > Unfortunately I don't understand this. It can go in the documentation, > with the work around to be : > if (!!a && ...) > or > if (a) > if (...) Of course. But I was hoping for a work-around at the library-side, not at the user's side. What exactly are the overloads that the VC thinks might match? Or what type does it try to cast the expression to (instead of bool)? > Finally, if we choose this route, this means that we can take the approach > of providing operator! and a private operator some_number_type() while the > user provides operator bool. This is more semantically correct in my > opinion, anyone have any problems with this? > > Oh, I should have patches posted very soon. Fine. Remember that the name should probably change to reflect the "corrected" semantics. Something like 'bool_negatable'? But then, there is still some slight illogic here: We provide operator!, but the protector is for operator bool. Two orthogonal concepts. Would it make sense to separate them? If so, will 'bool_protector' have any value? Those people not aware of the problem of providing operator bool() will not use it, those that are aware will use Peter's safe-bool-idiom when appropriate as it gives better error messages. And where safe-bool is not applicable, you don't need a protector anyway AFAICS. Hm... thoughts? Regards, Daniel -- Daniel Frey aixigo AG - financial training, research and technology Schloß-Rahe-Straße 15, 52072 Aachen, Germany fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99 eMail: [EMAIL PROTECTED], web: http://www.aixigo.de _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost