Array literals

Michel Fortin michel.fortin at michelf.com
Sat Oct 18 06:29:54 PDT 2008


On 2008-10-17 16:00:55 -0400, "Nick Sabalausky" <a at a.a> said:

> As long as we're talking about initializing jagged static arrays, I'd also
> add one other slight change. The following should also compile (the current
> D1 equivilent code complains. Not sure about D2):
> 
> // The only change from the code above is
> // swapping the order of "Hello" and "what"
> import std.stdio: writefln;
> void main() {
>     char[static][static] a = ["what", "Hello"];
>     writefln(a[1].length); // 5
> }
> 
> Might just be a bug, but currently (assuming the T[static] got implemented),
> the above would fail to compile with an error complaining that it cannot
> convert "Hello" from type char[5u] to type chat[4u]. Apperently,
> "a[anything].length" is assumed to be "a[0].length" instead of
> "max(a[0].length, a[1].length,...a[$-1].length)". So, currently, a[0].length
> must be >= the longest of the rest of the strings. That's bitten me a few
> times already.

For that to work, you'd also need implcit conversion from T[4] to T[5]. 
How are your proposing to do that?

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/




More information about the Digitalmars-d mailing list