Addresses US 124
Several shared_ptr related functions have wide contracts and cannot throw, so should be marked unconditionally noexcept.
Proposed change:
Add noexcept to:
template<class U> bool shared_ptr::owner_before(shared_ptr<U> const& b) const noexcept; template<class U> bool shared_ptr::owner_before(weak_ptr<U> const& b) const noexcept; template<class U> bool weak_ptr::owner_before(shared_ptr<U> const& b) const noexcept; template<class U> bool weak_ptr::owner_before(weak_ptr<U> const& b) const noexcept; bool owner_less::operator()(A,B) const noexcept; // all versions