digitalmars.D - void[0][string] hash = [ "text" : [] ] gives empty array.
- Cooler (6/6) Feb 06 2014 The code compiled and runs successfully:
- Maxim Fomin (7/13) Feb 06 2014 http://dlang.org/arrays.html
- ed (6/22) Feb 06 2014 This should be a compiler error, no?
The code compiled and runs successfully: void[0][string] hash = [ "text" : [] ]; writeln(hash); assert(hash.length == 0); Output result is "[]". Is that a bug?
Feb 06 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.
Feb 06 2014
On Friday, 7 February 2014 at 03:33:10 UTC, Maxim Fomin wrote:On Thursday, 6 February 2014 at 21:37:34 UTC, Cooler wrote:This should be a compiler error, no? void[0], OK void[0][], ERROR Cheers, edThe 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.
Feb 06 2014