Should we remove int[$] before 2.067?
Meta via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jan 30 13:03:44 PST 2015
On Friday, 30 January 2015 at 20:43:10 UTC, Andrei Alexandrescu
wrote:
>> I think if you showed someone auto declarations and then
>> showed them
>> something like auto[] arr = [...], their likely reaction would
>> be "well
>> of course that works". Although maybe I'm too familiar with D
>> at this
>> point and that's not the case at all.
>
> Yah, that's nice but needs appropriate formalization. How about
> auto[auto] to ensure an associative array type, or Xyz!(auto,
> auto)
staticArray!(int, auto) sarray = [1, 2, 3];
Maybe it is more general and powerful. Also, I believe that Kenji
*did* implement auto[auto]. I'm assuming you were just giving
examples and not seriously proposing the above, though.
> to ensure template Xyz with exactly two arguments, or even
> auto!(auto) to match any template instantiated with one
> argument...?
All interesting ideas.
> It's just getting weird, and not very useful because it's
> impossible to associate names with those "auto"s. As I
> mentioned this is sometimes used in C++ but I don't see vital
> idioms. I see people sometimes use
>
> auto& a = arr[n];
>
> to make sure they take a reference, but we can't define
> references locally so we can't use that :o).
I am having difficulty thinking of a situation where you want to
refer to the auto from something like `int[auto]`. Are you
alluding to pattern matching? I do agree that pattern matching is
much more powerful, general, and useful then a partial
type-deduction feature. I will also point out that partial type
deduction for templates, AKA higher-kinded types, has been a
great success in D, and it would be great to bring that power
into other areas of the language.
This is really all just pleasant diversion thinking about what
could be, but I think we can all at least agree that it will not
be a huge blow to D if [$] or partial type deduction gets
reverted. This is in spite of the fact that I like the latter, of
course.
More information about the Digitalmars-d
mailing list