Brian McNamara <[EMAIL PROTECTED]> wrote: > On Sun, Aug 31, 2003 at 10:41:15AM -0700, Mat Marcus wrote:
>> also interesting, although I think that readability suffers. I'd give >> up bool conversion and operator! to avoid the need for ~ if that would >> reasonably solve the muddling issues. But perhaps there would be too >> many other problems -- I haven't explored this deeply yet. > > Right; to clarify, I don't think the boolean conversion operator is > "interfering" with the implicit conversion to T. Rather I think each is > an instance of "implicit conversion", and implicit conversions just > don't work well with templates in general, in my experience. It does interfere with the implicit conversion to T. Consider this: optional<bool> o; if (o) foo(o); If you choose implicit conversion to T (which is debatable), the implicit conversion to (safe)bool will have to go: optional<bool> o; if (o != none) foo(o); But I see now that you are against implicit conversions, in general. Fair enough. FWIW, I never had, nor seen, any complaints about reference_wrapper<T>, which incidentally, has an implicit conversion to T. In fact, I find the implicit conversion very useful. Anyway... at the very least, I wish this is possible: optional<bool> o; if (o) foo(o.get()); But no, here too, we should write: optional<bool> o; if (o) foo(*o.get()); Which goes against existing practice in boost. See reference_wrapper::get, tuple::get, variant::get, etc. -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost