Skip to main content
Journey Uncommon Logo
JourneyUncommon
mediumC++unique_ptrSingle-choice MCQ

Why can a `std::unique_ptr<Derived>` be moved into a `std::unique_ptr<Base>` (with a virtual destructor) but never copied into one?

std::unique_ptr<Derived> d = std::make_unique<Derived>(); std::unique_ptr<Base> b = std::move(d); // ok // std::unique_ptr<Base> c = d; // error