投稿者によって喚起されましたWhy does destructor disable generation of implicit move methods?、私は、デフォルト仮想デストラクタで同じことが当てはまるかどうか疑問に思っていました。デフォルトの仮想デストラクタは、コンパイラが生成した移動操作を防止しますか?
class WidgetBase // Base class of all widgets
{
public:
virtual ~WidgetBase() = default;
// ...
};
クラスは、私は、基本クラスのポインタを操作する際のメモリリークと未定義の動作を避けるために、仮想デストラクタを定義する必要がウィジェット階層の基底クラスであることを意図しています。一方、コンパイラが自動的に移動操作を生成しないようにしたいとは思いません。
デフォルトの仮想デストラクタは、コンパイラ生成の移動操作を防止しますか?