Additional ownership semantics for smart pointers