digitalmars.D - [OT] Assignment expression as RValue
- Derek Parnell (22/22) Aug 09 2004 Hi,
- Andy Friesen (11/38) Aug 09 2004 I prefer for local variables to exist only where they are used, so it's
Hi, I'm having a bit of a discussion with some colleagues about assignments. I'm trying to come up with a example (or two) in which the use of an assignment expression as an RValue is the only (best?) way to do it. eg.. someOperation(X = SomeExpression); So far, it seems that one can always do ... X = SomeExpression; someOperation(X); and a half decent optimizer will generate the same code. Even ... A = B = C = D; can be expressed as ... C = D; B = D; A = D; So can anyone help me with an example, or is such a beastie just a syntax shorthand? -- Derek Melbourne, Australia 10/Aug/04 1:57:47 PM
Aug 09 2004
Derek Parnell wrote:
Hi,
I'm having a bit of a discussion with some colleagues about assignments.
I'm trying to come up with a example (or two) in which the use of an
assignment expression as an RValue is the only (best?) way to do it.
eg..
someOperation(X = SomeExpression);
So far, it seems that one can always do ...
X = SomeExpression;
someOperation(X);
and a half decent optimizer will generate the same code.
Even ...
A = B = C = D;
can be expressed as ...
C = D;
B = D;
A = D;
So can anyone help me with an example, or is such a beastie just a syntax
shorthand?
I prefer for local variables to exist only where they are used, so it's
useful to be able to write something like this:
if (DerivedClass* derivedPtr = dynamic_cast<DerivedClass>(some_base)) {
...
}
The local 'derivedPtr' exists only within the if block, where it belongs.
The only other way to do this is to create a naked block just for the if
statement. It works, but it's much uglier looking and involves another
level of nesting. (opinions may vary)
-- andy
Aug 09 2004








Andy Friesen <andy ikagames.com>