Quais destruidores são executados quando o construtor lança uma exceção?

Em C ++, se um construtor lança uma exceção, quais destruidores são executados?

Em particular, faz alguma diferença se a exceção é durante a lista de inicialização ou o corpo?

Além disso, o que acontece com herança e membros? Presumivelmente, todas as construções concluídas são destruídas. Se apenas alguns membros são construídos, apenas aqueles são destruídos? Se houver herança múltipla, todos os construtores concluídos serão destruídos? A herança virtual muda alguma coisa?

questionAnswers(3)

yourAnswerToTheQuestion