Um destruidor virtual padrão impede operações de movimentação geradas pelo compilador?

Inspirado no postPor que o destruidor desativa a geração de métodos de movimentação implícitos?, Fiquei pensando se o mesmo se aplica ao destruidor virtual padrão, por exemplo.

class WidgetBase // Base class of all widgets
{
    public:
        virtual ~WidgetBase() = default;
        // ...
};

Como a classe pretende ser uma classe base de uma hierarquia de widgets, tenho que definir seu destruidor virtual para evitar vazamentos de memória e comportamento indefinido ao trabalhar com ponteiros de classe base. Por outro lado, não quero impedir que o compilador gere automaticamente operações de movimentação.

Um destruidor virtual padrão impede operações de movimentação geradas pelo compilador?