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;
}