Я понимаю необходимость виртуального наследования при использовании множественного наследования - он решает проблему Dreaded Diamond.
Но что, если я не использую множественное наследование? Есть ли необходимость в виртуальном наследовании вообще?
Мне кажется, что я слышал, что это важно для исключений (выкидывать производный класс, catch по ссылке базового класса). Но разве виртуальные деструкторы не должны быть достаточными для этого?
Я попытался найти ссылочную страницу, которую я когда-то видел, но я не могу ее найти.