I remember in C++, I had to do double-dispatch using the visitor pattern. This is cumbersome, just because each subclass has to have the exact same singly-dispatched code that looks like:
void dispatch(Base& other) { other.dispatch(*this); } Is there a nicer way to do this in D, or am I stuck with the same thing?