|
Boost : |
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk