<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/124937>124937</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc++] Strenghten noexcept specification for container move-assignment
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ldionne
      </td>
    </tr>
</table>

<pre>
     Do we want `is_nothrow_move_assignable<Alloc>` to affect the exception specifications (which potentially weakens exception specifications)?
Note that [[allocator.requirements.general]/84](https://eel.is/c++draft/allocator.requirements.general#84) requires that if the allocator is move-assigned, the operation must not throw an exception, even if the move assignment is potentially throwing.

_Originally posted by @frederick-vs-ja in https://github.com/llvm/llvm-project/pull/120312#discussion_r1889454171_
 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUk8FyozgQhp-muXSZgpaw4cAhjpfj7mEfwCWgASWyxErC3rz9FJBMksPU1Fzoouj-6_-_blQIerTMNRRnKC6JWuLkfG167azlpHX9W40Xhw_Gh7IR4ZjpcLUuTt49rjd35-suoVrDIJ6fjHEdiL_gmGF0qIaBu4hxYuT_O56jdhbDzJ0edKfWt4BA5WPS3YSzi2yjVsa84YPVK9vwyymgCkQD2QWyp79dZIyTiriFOKvVg4rOp57_W7TnG9sY0pEte2WguAA1pdxqOcU4BxBPQA1Qw2xSHYCaDugMdO69GiJQ8xtFEqUEqvD9Y9jN6GHL_XMWdcAV2OGdeQ_0vHW4mf2WCm9LiGjdCsy7Byr7mX9t5jvbD9lVCXel1cwq_pXfJqDtmO6I9uf1H69HbbeG2YXIPbZvCDIbPPfsdfd6uIfDi0Jt8TuYUcdpadPO3YAaY-4f5TB798LdymhejAFqcspETkCi16FbQtDOXn1elpUsZH7Kr7sTTPpa9JWoVMJ1fhJlfiwkHZOp5lJSKzuSJ1kpUXRCZm2Zn4RSVd6Xg0p0TRkVWU5VXkghjym3JEspOD-S6EXZgsz4prRJV4Op82OiQ1i4zklW4pQY1bIJ270TGd2-rxqI1vv39RarXcYAMjM6xPCpE3U025_yZay44L_Rsx2nyBat2xf2_VpxcB47Z6PSlv3XI1hXlyze1H-Me8sUNuBbrHtNPwIAAP__MtZDsg">