Has no one mentioned void[0][T] yet?

alias Set(T) = void[0][T];

void add(T)(ref void[0][T] set, T key) {
    set[key] = (void[0]).init;
}

bool contains(T)(inout(void[0][T]) set, T key) {
    return (key in set) !is null;
}

void main() {
    Set!int set;

    set.add(1);

    assert(set.contains(1));

    set.remove(1);

    assert(!set.contains(1));
}

Reply via email to