Multiple return values...

Ary Manzana ary at esperanto.org.ar
Wed Mar 14 13:10:36 PDT 2012


On 3/14/12 5:00 PM, Simen Kjærås wrote:
> On Wed, 14 Mar 2012 20:02:50 +0100, Ary Manzana <ary at esperanto.org.ar>
> wrote:
>
>> Here's what you can do in Ruby:
>>
>> a = 1
>> b = 2
>>
>> # Swap the contents
>> a, b = b, a
>>
>> Can you do something like that with templates in D, with a nice syntax?
>
> 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 );
> }

Awesome! :-)


More information about the Digitalmars-d mailing list