title: How can shared_ptr offer noexcept assignment?
body: <p>How can <code>std::shared_ptr</code> offer a <code>noexcept</code> <code>operator=</code>? Surely, if this <code>shared_ptr</code> is the last one, then it will have to destroy its contents, and it can't guarantee that the destructor of that object does not throw, or the custom deleter used originally does not throw.</p>