2011/7/22 Andrei Alexandrescu <[email protected]>: > On 7/21/11 7:06 PM, Jonathan M Davis wrote: >> >> On 2011-07-21 16:54, Andrei Alexandrescu wrote: >>> >>> On 7/21/11 6:44 PM, Simen Kjaeraas wrote: >>>> >>>> On Thu, 21 Jul 2011 23:40:08 +0200, bearophile >>>> >>>> <[email protected]> wrote: >>>>> >>>>> Nick Sabalausky: >>>>>> >>>>>> Crazy, nutty, wacky idea... >>>>>> >>>>>> float (a, b, c) = 0.0; >>>>> >>>>> I'd like some syntax sugar for tuples in D (especially for their >>>>> unpacking), that syntax goes against one of the most natural ways to >>>>> define tuples. So it's not a good idea. >>>> >>>> It is highly unlikely that D will ever adopt that syntax for tuples, >>>> due to the previously much-discussed comma operator (which, while >>>> uncommon, is useful at times). I believe the syntax that came out on >>>> top in earlier discussions was the upended hamburger bun, or banana >>>> syntax: >>>> >>>> (| float f, string s |) foo = (| 1.2, "Eh, whut?" |); >>> >>> Here's a crazy idea: >>> >>> auto foo = tuple(1.2, "Eh, whut?"); >> >> Is this particular case, a built-in syntax buys you nothing, as you >> demonstrate. I think that the case that Bearophile is always looking for >> is >> something like this: >> >> int i; >> float f; >> >> (i, f) = tuple(5, 2.2); > > scatter(tuple(5, 2.2), i, f); > > The more difficult construct is: > > auto (i, f) = tuple(5, 2.2); > > Walter and I discussed a language change to allow that. > > > Andrei > >
I have posted a pull request for expanding alias this tuples somewhere. https://github.com/D-Programming-Language/dmd/pull/74 I think that this patch will make conversion seamlessly from built-in tuple to library tuple. > auto (i, f) = tuple(5, 2.2); > Walter and I discussed a language change to allow that. I'd like to make patch supporting it. Kenji Hara
