TeamViewer interview question

What is a smart pointer in c++?