On 9/20/17 1:36 AM, Andrei Alexandrescu wrote:
On 9/19/17 8:47 PM, Steven Schveighoffer wrote:
This needs to happen.
e.g.:
char[$] arr = "hello"; // syntax up for debate, but I like this.
I can't think of a correct way to do this that doesn't heap-allocate
and is DRY.
D is so powerful, it's a huge shame it can't figure this one out.
issue: https://issues.dlang.org/show_bug.cgi?id=481
Fix that was merged: https://github.com/dlang/dmd/pull/3615
And then reverted: https://github.com/dlang/dmd/pull/4373
Maybe there was an issue with the implementation? Can it be redone?
The argument was it can be done trivially with a library solution.
As I said, I can't figure it out. Perhaps the triviality can be explained?
As Jonathan said, the VRP causes problems, because the compiler has more
context than a library function. There is also the concern about
needlessly generating templates and functions for every type and static
array length combination, just for an initializer.
e.g., make this work without having to specify "3":
ubyte[3] = [1, 2, 3];
Thanks.
-Steve