After listening to various CppCon YT talks on modern C++ tips and best-practices I'm sorta confused -
Specifically, is this construct bad for performance by disabling the compiler's ability to use move semantics for CDerived
?
class CDerived : public CBase {
public:
CDerived();
virtual ~CDerived() = default; // <== THIS - Bad, even when using default?
virtual void DoStuff();
};
I suppose in contrast to other questions linked in comments this comes down to
- Does the
default
destructor count as auto-generated or user-declared destructor (given it's created by the compiler).