Allows move constructors to throw and adds noexcept plus std::move_if_noexcept so containers stay exception-safe.
noexcept
std::move_if_noexcept