On Wednesday, 21 January 2015 at 14:41:48 UTC, Baz wrote:
On Wednesday, 21 January 2015 at 14:31:15 UTC, bearophile wrote:
Currently this is accepted:
int[2] m = cast(int[2])[1, 2];
But Kenji suggests that the cast from int[] to int[2][1]
should not be accepted. Do you know why?
Reference:
https://issues.dlang.org/show_bug.cgi?id=7514
Bye and thank you,
bearophile
This is because of the .sizeof property, for example:
void main(string[] args)
{
int[3] m = cast(int[3])[1, 2, 3];
writeln(m.sizeof);
writeln([1, 2, 3].sizeof);
}
outputs 12 / 8
Your previous example is corner case, it's 8/8 in both.
with -m32 of course.