Smart pointer
Applies to: cpp
A smart pointer owns a heap object and frees it automatically (RAII), preventing leaks. std::unique_ptr is a
single owner; std::shared_ptr is reference-counted shared ownership. Prefer them over raw new/delete.
auto r = std::make_unique<Robot>(); // freed automatically when r dies
r->drive(2.0);