What is the stance on partial initializers when declaring multiplevariables of the same type?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Jul 21 18:57:38 PDT 2011


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
>>>
>>> <bearophileHUGS at lycos.com>  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



More information about the Digitalmars-d mailing list