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);

See also: pointer, raii