I understand the need for virtual inheritance when using multiple inheritance -- it solves the Dreaded Diamond Problem.
But what if I'm not using multiple inheritance? Is there a need for virtual inheritance at all?
I seem to recall hearing that it was important for exceptions (throw a derived class, catch by base class reference). But shouldn't virtual destructors be sufficient for that?
I've tried searching for the reference page I once saw on this, but I can't seem to find it.