The only difference being that in the case of a smart pointer, you can't ignore the possibility of a null by accident.
struct foo { int bar; };
std::unique_ptr<foo> bug;
bug->bar = 123;And I haven't seen anything indicating unique_ptr is to be deprecated - maybe you're thinking about auto_ptr.
They don't try to address the check for null problem at all; that isn't their intent. All they mean to do is eliminate several classes of common, easy to make mistakes such as not zero initializing or not freeing the resource.