Ref local variables?

Robert Jacques sandford at jhu.edu
Tue Jan 10 20:16:38 PST 2012


On Tue, 10 Jan 2012 21:55:53 -0600, Nick Sabalausky <a at a.a> wrote:

> "Ben Davis" <entheh at cantab.net> wrote in message
> news:jeinah$2pnj$1 at digitalmars.com...
>> Hi,
>>
>> Please excuse the cross-post with D.learn. People have been helpful there
>> with workarounds, but I'm bringing it here in the hope that we can discuss
>> a language enhancement.
>>
>> So - could support for 'ref' local variables be added, or is there a
>> reason not to? I want to write something like:
>>
>> MapTile[] map;    // It's a struct
>>
>> ref MapTile tile=map[y*w+x];
>> tile.id=something;
>> tile.isWall=true;
>> someFunctionThatTakesRefMapTile(tile);
>>
>
> I *really* want the ability to do that sort of thing, although I think it
> should be an alias rather than a ref variable:
>
> MapTile[] map;    // It's a struct
>
> alias map[y*w+x] tile;
> tile.id=something;
> tile.isWall=true;
> someFunctionThatTakesRefMapTile(tile);

Would making pointers implicitly convert to ref parameters suffice? i.e. make

     void foo(ref int x) { x++; }

     int x = 5;
     auto y = &x;
     foo(y);

valid D code?


More information about the Digitalmars-d mailing list