void[0][string] hash = [ "text" : [] ] gives empty array.

Maxim Fomin maxim at maxim-fomin.ru
Thu Feb 6 19:33:09 PST 2014


On Thursday, 6 February 2014 at 21:37:34 UTC, Cooler wrote:
> The code compiled and runs successfully:
>   void[0][string] hash = [ "text" : [] ];
>   writeln(hash);
>   assert(hash.length == 0);
>
> Output result is "[]".
>
> Is that a bug?

http://dlang.org/arrays.html

A static array with a dimension of 0 is allowed, but no space is 
allocated for it. It's useful as the last member of a variable 
length struct, or as the degenerate case of a template expansion.

Judging by compler output, zero size static arrays are removed 
completely, so no surprise that nothing is done.


More information about the Digitalmars-d mailing list