> As far as I'm aware, if you stay within the confines of smart pointers (and don't drop down to the raw pointer it owns) you will never encounter undefined behavior.
Deref'ing an empty (e.g. moved-from) unique_ptr is still UB.
Deref'ing an empty (e.g. moved-from) unique_ptr is still UB.
(That'll only work for null.)