Qual é o objetivo do destruidor excluído?

Me deparei com a regra (seçãoN3797::12.8/11 [class.copy])

Um construtor de copiar / mover declarado implicitamente é um membro público interno de sua classe. Um construtor de copiar / mover padrão para uma classe X é definido como excluído (8.4.3) se X tiver:

[...]

- qualquer classe base direta ou virtual ou membro de dados não estáticos de um tipo com um destruidor queé excluído ou inacessível do construtor padrão, ou

[...]

Mas não consigo fazer com que o ponto do destruidor excluído apareça em uma classe base virtual ou direta. Considere o seguinte exemplo simples:

struct A
{
    ~A() = delete;
    A(){ }
};

struct B : A
{
    B(){ }; //error: use of deleted function 'A::~A()'
};

B b; 

int main() { }

DEMO

É perfeitamente claro para mim. Eu defini o construtor de 0 argumentos explicitamente e ele não usa o destruidor da classe base. Mas o compilador pensa o contrário. Não vai funcionar mesmo se definirmosBdo destruidor explicitamente:

struct A
{
    ~A() = delete;
    A(){ }
};

struct B : A
{
    B(){ };
    ~B(){ };
};

//B b;

int main() {
}

DEMO

Você não poderia esclarecer essa coisa?

questionAnswers(1)

yourAnswerToTheQuestion