On 07/03/13 18:29, Brad Anderson wrote:
> On Wednesday, 3 July 2013 at 11:54:39 UTC, Artur Skawina wrote:
>> On 07/03/13 02:22, Brad Anderson wrote:
>>> C++11's std::tuple includes a function std::tie that takes references to 
>>> the arguments and returns a tuple that maintains the references to the 
>>> arguments.
>>>
>>> Along with the usual cases where you'd want reference semantics it also 
>>> enables this interesting construct for unpacking tuples.
>>>
>>> int a, b;
>>> tie(a, b) = make_tuple(1, 2);
>>>
>>> assert(a == 1 && b == 2);
>>>
>>> Is there any way to do something similar with std.typecons.Tuple?
>>
>> Well, aliases can be used to get a similar effect.
>>
>>    template tie(A...) { alias tie = A; }
>>    tie!(a, b) = tuple(1, 2);
> 
> That won't work.  a and b aren't held as references (also you passed them as 
> type parameters :P).

Try it...

And, yes, the fact that 'A...' template parms accept symbols
is not exactly obvious. But it's much more useful that way.

artur

Reply via email to