After reading this answer, it looks like it is a best practice to use smart pointers as much as possible, and to reduce the usage of \"normal\"/raw pointers to minimum.
I believe smart pointer should be used as much as possible, even in the situation where raw pointer is enough. unique_ptr can help manage the resource life cycle while still staying small and fast. Don't look back!