Multiple return values...

Derek Parnell ddparnell at bigpond.com
Wed Mar 14 15:06:59 PDT 2012


On Thu, 15 Mar 2012 08:52:26 +1100, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> On 3/14/12 3:00 PM, Simen Kjærås wrote:
>> template to(T...) {
>> alias T to;
>> }
>>
>> auto from(T...)(T t) {
>> struct Result { T t; alias t this; }
>> return Result( t );
>> }
>>
>> void main( ) {
>> int a = 3;
>> int b = 4;
>>
>> to!(a, b) = from(b, a);
>>
>> assert( a == 4 );
>> assert( b == 3 );
>> }
>
> I got reborn inside a little when seeing this code. Congratulations!

And I died a little ... I have no idea what this code is doing. What is  
the generated code produced by this and why?

I'd like to break the nexus between science and magic here.

-- 
Derek


More information about the Digitalmars-d mailing list