----- Original Message -----
From: "David Abrahams" <[EMAIL PROTECTED]>

> >> BTW, IIF always bothered me when I saw it; it's non-memnonic, and I
> >> never knew what it did.  IF_BOOL would have been better in that
> >> respect.
> >
> > It stands for "inline if" because it is doesn't do any checking.  The
> > condition *must* be 1 or 0 period.  BOOST_PP_IF is implemented in terms
of
> > BOOST_PP_IIF, but using BOOST_PP_IF when the condition is guaranteed to
be 0
> > or 1 is a waste of time.
>
> I understand what you're saying, but I think "inline if" doesn't
> reflect what it's doing and IIF is still not memnonic.

It ultimately from (don't laugh) VB's version of the ternary
operator--called "iif."  It is not semantically exactly the same, but it is
"similar" in the C++ inlining sense.  For better or for worse, that is its
name.

> > If you used (?) instead, it would absolutely force you to use (?) to
> > complete the ternary conditional.  The point of using it somehow, is to
> > enforce that it isn't this:   (aaaaaaaaaaaaaa) <= 0x1234 -- if I don't
use
> > it, I can't tell the difference between '?', '!', and 'aaaaaa'.
>
> Yes, but that would force inversion of the conditional, which would
> look weird.

Inversion?  You'd just have to swap the 1 and 0:  "expr ? 0 : 1" versus
"expr ? 1 : 0".

> > The PP lib uses no other libraries.  It won't even use this one.  This
is
> > primarily because the concerns are different in the PP-lib.  The bugs in
> > VC++ and Metrowerks are ones that break encapsulation.  The resulting
fix is
> > to implement the workarounds over the entire library has a whole.  The
> > aren't specific enough to localize that cleanly.  I also consider the PP
lib
> > to pontentially be *the* base-level library on a library dependency
scale.
> > I like reuse, but only if it is "downward" reuse.  I.e. The preprocessor
lib
> > doesn't use the MPL, but the MPL uses the preprocessor lib; the MPL
doesn't
> > use library X, but library X uses the MPL.  I think this reuse ordering
> > models the phases of translation (including runtime).
>
> I have no problem with it, but I'd like to hear at least one more
> opinion (other than Gennaro's) before we move forward with it.  This
> macro will be used in every Boost library, so if people find it
> terribly odious it will be a failure.

I'm not asserting that it should be done this way.  Rather, I'm just
saying that this (or something similar) is possible if that is what you
want.

It seems like a total overkill to me.  The benefit does not pay for the
implied complexity.  On the plus side, it is clever ;) and yields a clean
syntax.  However, I still think that the use of the pp-lib is fine and
represents an acceptable dependency, but in this particular case, it's
overdoing it--IMHO.

Paul Mensonides

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to