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
defaultdestructor count as auto-generated or user-declared destructor (given it's created by the compiler).