Unofficial wish list status.(Nov 2008)

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Nov 1 09:33:01 PDT 2008


Denis Koroskin wrote:
> On Sat, 01 Nov 2008 19:04:16 +0300, Andrei Alexandrescu 
> <SeeWebsiteForEmail at erdani.org> wrote:
> 
>> KennyTM~ wrote:
>>> ore-sama wrote:
>>>> 4tuu4k002 at sneakemail.com Wrote:
>>>>
>>>>> 105  Multiple return values (tuples (#28)
>>>>> int, int getPoint();
>>>>> int a,b;
>>>>> a,b = getPoint();
>>>>
>>>> Provided we have lvalue array literals, this can fit to general 
>>>> array operations rules:
>>>> int[] getPoint();
>>>> int a,b;
>>>> [a,b]=getPoint();
>>>  int code;
>>> string msg;
>>>  [code, msg] = getError();
>>
>> Tuple!(int, "code", string, "msg") getError();
>> auto e = getError;
>>
>>
>> Andrei
> 
> Imagine 'code' and 'msg' are already there as local variables and you 
> want to reuse them. How should you do this?

I've been thinking of defining a simple function that binds to variable 
addresses and allows assignment from a tuple, in which case the code 
would be:

group(&code, &msg) = getError;

In "the future" we'll have variadic ref arguments, in which case the 
"&"s can be dropped:

group(code, msg) = getError;

Also in "the future" variable definitions will be expressions, in which 
case the code to define and assign code and msg becomes:

group(int code, string msg) = getError;


Andrei



More information about the Digitalmars-d mailing list