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