Feedback Thread: DIP 1039--Static Arrays with Inferred Length--Community Review Round 1
Luhrel
lucien.perregaux at gmail.com
Sat Jan 23 17:21:07 UTC 2021
On Friday, 8 January 2021 at 00:57:37 UTC, Q. Schroll wrote:
> ...
>
> This feature would have a reasonable chance of being accepted
> some years ago. Since this is the feedback thread, here's my
> constructive feedback:
>
> A. You maybe need better examples.
I agree with that.
> Ease of reading and writing code can be an argument. You may
> want to state it somewhere.
> Unfortunately, this isn't a very good one. If you can come up
> with examples where workarounds are at least slightly more
> unpleasant than the one for Example a5 (that don't look too
> artificial), it might work out.
I agree.
> B. The DIP says that int[2] and int[$] may end up the same
> thing, but document different intent. IMO, this is the best
> argument this DIP has. An immediate case where this is relevant
> is as a function return type. As an example, opSlice (as the
> lowering of the double-dots in xs[0 .. 1]) returns size_t[2].
> It won't ever return another number of size_t, so size_t[$]
> would be wrong conceptually. Other functions returning static
> arrays might return T[4], but the 4 isn't particular to the use
> case. If it might change, this can be documented using T[$] so
> that uses of the function don't rely on the 4 too much.
I don't agree because the previous DIP was reverted because of
the partial deduction needed for the functions. As xs[0 .. 1]
returns a slice, it will be easier to cast it to a size_t[2] and
then changing the return type to `auto`.
> C. The DIP really must address the fact that what is gained is
> very minor.
Meh.
> Therefore, the difficulty of the implementation and its
> maintenance in the compiler code plays a huge role. If you can
> provide an implementation that most people would agree isn't
> that big of a deal having in the compiler, that would be really
> valuable.
I agree.
More information about the Digitalmars-d
mailing list