Remove takes an offset, not a value as far as I know.
If you need fast lookup and removal you could use hashes instead:
int main(string[] argv)
{
    auto a = new A;
    SlotDelegate x = &a.DIT;
    bool[SlotDelegate] _slotDg;
    _slotDg.remove(x);
    return 0;
}