Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-07-07 11:23:16


"Andrei Alexandrescu \(See Website for Email\)" <andrewalex_at_[hidden]> writes:

> "David Abrahams" <dave_at_[hidden]> wrote in message
> news:u658z4xrh.fsf_at_boost-consulting.com...
>> Well, it might.
>>
>> But then, the user knows he's using the initialization library, and
>> operator, has a different meaning in that context, just like
>> operator<< means something else in the context of a Spirit gramar.
>
> I see. So I'd like to make a quick poll for Boosters: Overloading the comma
> operator in a way that could change order of evaluation of its arguments is:
>
> a) an obsolete coding standard
> b) a valid coding standard
> c) a valid coding standard, but for reasons x, y, and z, the initialization
> library doesn't violate it/violates it but gets away with it/etc.

IMO it's only a valid coding standard if you also have a coding
standard that says "operators must always act the same on user-defined
types as they do on the builtins" -- which I would never accept ;-)

Probably the right standard is:

         "If you're trying to define operators that act like the
         builtin ones, beware the overloading of operator,, operator&&
         and operator||, because you can't get identical semantics".

But then, why would anyone want to overload operator, other than to
change the semantics??

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk