On Tuesday, 8 February 2022 at 21:58:49 UTC, H. S. Teoh wrote:
On Tue, Feb 08, 2022 at 09:47:13PM +0000, Paul Backus via
Digitalmars-d-learn wrote: [...]
The `alias` and the `enum` just make the code a little nicer
to read by letting you write `Unit` instead of `void[0]` and
`unit` instead of `void[0].init`. You could get rid of them
and the code would work exactly the same way; it'd just be a
little bit uglier:
void[0][E] mySet;
mySet[...] = void[0].init;
[...]
Unfortunately, this doesn't work due to a syntax restriction
(the parser isn't expecting a type name after the `=`, and will
raise a syntax error). So the alias is in fact necessary.
Ah, yeah, I forgot about that bug.
It also works if you use parentheses:
mySet[...] = (void[0]).init;