DUAL FEATURE REQUEST: let "with" take a struct pointer and evaluate to its parameter

Daniel Keep daniel.keep.lists at gmail.com
Fri Dec 21 17:15:27 PST 2007



Simen Kjaeraas wrote:
> On Thu, 20 Dec 2007 16:31:56 +0100, downs <default_357-line at yahoo.de>
> wrote:
> 
>> The first part of the feature request is to allow "with" to take a
>> pointer to a struct as a parameter.
>>
>> This is for the sake of internal consistency; since you can already call
>> methods on a struct pointer as if it was dereferenced, it makes sense to
>> also be able to use "with" on it.
>>
>> The second one arises from the following really cute idea ge0rg had in
>> #d. Quote
>>
>>> > <Ge0rG> so you want 'auto foo = with(new myStruct) { bar = 23; baz
>>> = 42; ... }'?
> 
> Wouldn't it be more logical to use
> 
>     with (auto foo = new myStruct) { bar = 23; baz = 42; ... }

Consistency demands that 'foo' only exists until the end of the while
block.  What, then, would be the point of giving the struct a name for
the duration of a construct whose primary purpose is to allow you to
omit the name?

Being able to use control structures as expressions is a damn cool idea;
I just don't get why more people don't like it.

	-- Daniel



More information about the Digitalmars-d mailing list