Feature request: extending comma operator's functionality
monarch_dodra
monarchdodra at gmail.com
Fri Oct 5 06:35:10 PDT 2012
On Friday, 5 October 2012 at 00:22:04 UTC, Jonathan M Davis wrote:
> On Friday, October 05, 2012 02:08:14 bearophile wrote:
>> [SNIP]
>> Regarding definition of variables in D language constructs,
>> there
>> is one situation where sometimes I find D not handy. This code
>> can't work:
>>
>> do {
>> const x = ...;
>> } while (predicate(x));
>>
>>
>> You need to use:
>>
>> T x;
>> do {
>> x = ...;
>> } while (predicate(x));
>
> Yeah. That comes from C/C++ (and is the same in Java and C#, I
> believe). I
> don't know why it works that way. It's definitely annoying.
>
> [SNIP]
>
> - Jonathan M Davis
Because it's the only way to guarantee that x exits when you
reach the end of the loop.
do {
if(true) continue; //Yawn... skip.
const x = ... ;
} while (predicate(x)); //What's x?
Basic goto limitations. Unlike goto though, inserting a
"continue" should never create a compile error, so the compiler
*has* to guarantee that the if condition references nothing
inside its own block.
It is annoying, but nothing that can't be fixed with a scope bloc.
More information about the Digitalmars-d
mailing list