From: Maurizio Vitale (mav_at_[hidden])
Date: 2007-05-13 14:17:25


Eric Niebler <eric_at_[hidden]> writes:

>> I've just noticed you still have {left,right}_shift vs. shift_{left,right} of boost::mpl.
>
> You're right. I'll change this, but probably not until after BoostCon.

Found some more:
    bitwise_{and,or,xor} for boost::mpl bit{and,or,xor}_

And then you have these, although here is a tougher call:
    logical_{and,or,not} for boost::mpl::{and,or,not}_
The problem here is that proto already has and_, or_ and not_ (although not in the tag namespace) and
it might be confusing to have the same name denoting different things.
(although personally I find having the same name for different things in different namespaces less
confusing than having different names for the same thing across proto/mpl).

The reason I discovered these is that I'm writing a transform that evaluates proto expressions as mpl expressions, as
long as terminals gets transformed to mpl::int_/long_/bool_. In that context it is nice to have exactly the same name
so that ancillary macros can take a single argument, rather than two which are almost always the same.
But I wouldn't consider this a determining factor in deciding.

Before taking a decision also consider uniformity in bitwise_{and,or,xor}_assign. These are not in mpl, but I think that
if bitwise_ gets dropped in the normal operator it should be dropped for assigning operators as well.

Also, I wouldn't drop bitwise unless logical gets dropped as well.

So on these I have no strong feelings, but I mention them anyhow so that you can think about the issue.

Maybe here it would be better if boost::mpl offered the proto names as well (while preserving the existing ones
for backward compatibility).

Regards,

        Maurizio