Inspiriert von der Post Why does destructor disable generation of implicit move methods?, ich frage mich, ob das gleiche gilt für die Standard virtuellen Destruktor, z.Verhindert ein virtueller Standarddestruktor Compiler-generierte Verschiebeoperationen?
class WidgetBase // Base class of all widgets
{
public:
virtual ~WidgetBase() = default;
// ...
};
Da die Klasse eine Basisklasse einer Widgets Hierarchie sein Ich habe seine destructor virtuellen sollte definieren Speicherlecks und nicht definiertes Verhalten zu vermeiden, wenn mit der Basisklasse Zeigern arbeiten. Andererseits möchte ich nicht verhindern, dass der Compiler automatisch Verschiebeoperationen erzeugt.
Behindert ein virtueller Standarddestruktor compilergenerierte Verschiebeoperationen?