On 12/5/18 5:34 AM, Stanislav Blinov wrote:
On Tuesday, 4 December 2018 at 23:28:42 UTC, H. S. Teoh wrote:

Well OK, for int[] it's kinda silly 'cos that's the default, but in my code I've often had to write things like:

    auto z = cast(float[]) [ 1.0, 2.0, 3.0 ];

Err,

auto z = [ 1.0f, 2, 3 ];

?

But that's only because 2 promotes to float. If it's 2.0 (or let's make it 2.1 so you can't have the int cop-out), then you have to tag all the elements (a bit annoying).

However, you can also do

float[] z = [1.0, 2.0, 3.0];

which is what I'd prefer, and isn't as verbose as either the cast or the OP's suggestion. But in cases where you aren't assigning a variable, float[](1.0, 2.1, 3.5) would be more desirable than casting (since casting is dangerous).

I would say we should allow such usage. And it doesn't conflict with array multi-dimensional allocation, since that accepts not a literal, but an argument list of sizes.

-Steve

Reply via email to