
On 7/7/04 12:08 PM, "Andrei Alexandrescu (See Website for Email)" <andrewalex@hotmail.com> wrote:
"David Abrahams" <dave@boost-consulting.com> wrote in message news:u658z4xrh.fsf@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.
I don't understand what the extra descriptions in [c] mean. How does [c] differ from [b]? Also, the initial question is badly formed. It implies that there is a method of overloading the comma operator _without_ making argument evaluation order arbitrary. There isn't. (It's either using the built-in operator in list order, or an user-defined version in arbitrary order.) -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com