On Sunday, 5 June 2016 at 20:16:54 UTC, Andrej Mitrovic wrote:
On 6/5/16, Anonymous via Digitalmars-d-learn
<digitalmars-d-learn@puremagic.com> wrote:
static Note[0] empty;
Note[] getNotes(string id)
{
return (id in store) ? store[id] : empty;
}
It's likely an accepts-invalid bug, meaning it should be a
compiler error instead. I don't think it makes sense that the
compiler tries to slice a fixed-length array of length zero..
tho perhaps it should just equate that to returning null.
In any case you can return `null` instead of "empty".
Fixed-length arrays of length zero aren't really all that
well-defined. Some would say they make no sense, but there is a
weird benefit to them when used with the built-in hashmaps (a
void[0] value type wouldn't allocate memory, AFAIR and if that
is still true).
Should I report this as a dmd bug then? Not sure where / how to
do that.
I think I'll just let it go; I was able to work passed it anyway
using "static Note[] empty;", and `null` works too. Is either one
better?
By the way, this is from an example I found in "D Web
Development" by Kai Nacke.