smart pointer
A type that acts like a reference but also owns or manages what it points to.
A smart pointer is a struct that holds a pointer and adds behavior through Deref (use it like a reference) and Drop (clean up); Box, Rc, Arc, String and Vec are examples.
See also