I had a lesson in programing today and my professor mentioned smart pointers. He said that not every smart pointer needs a reference counter, I am a bit confused... In my understanding the use of smart pointers is to delete an allocated memory after all the pointers and references to it is out of scope. Did I misunderstand? What is the use of a smart pointer without a reference counter?