On 08/20/2013 02:18 AM, Andrei Alexandrescu wrote:

Why would it be necessary to return an object of type TypeTuple (i.e.
template tuple)?


- Elegance. Eg:

auto seq(T...)(T arg){ return arg; }

auto fold(alias a,S,R)(S start, R range){ ... }


seq(0,[1,2,3]).fold!((a,b)=>a+b);


(Obviously you can get close by requiring expansion at the call site.)


- ABI

Multiple return values could use a more efficient ABI than struct instances because they do not have an address.


- Consistency

A type whose instances cannot be returned from a function is just weird language design.


It has no state.

It may alias variables that do.

Reply via email to