https://forum.dlang.org/post/mailman.1072.1581112984.31109.digitalmars-d-le...@puremagic.com

On Friday, 7 February 2020 at 22:03:00 UTC, H. S. Teoh wrote:
On Fri, Feb 07, 2020 at 07:37:08PM +0000, mark via Digitalmars-d-learn wrote:
[...]

bool[E] works just fine.

The bool does take up 1 byte, though, so if you're *really* want to optimize that away, you could do this:

        alias Unit = void[0];
        enum unit = Unit.init;

        // Look, ma! A bona fide set!
        Unit[E] mySet;

        mySet[...] = unit;
        mySet.remove(...);
        ... // etc.

Or you can wrap void[0][E] in a nice user-defined type that gives nice set-like syntax. But IMO, this is all overkill, and adds needless complexity. Just use bool[E] or std.container.rbtree. :-D


T

Can you please explain what does `bool[E]` mean? And how does the code with aliasing void[0] and then using enum even work?

Reply via email to