<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140448>140448</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++][test] `flat_set` std test uses `EmplaceUnsafeContainer` which is non-standard
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
AlexGuteniev
</td>
</tr>
</table>
<pre>
`EmplaceUnsafeContainer` is used in tests for `flat_set` and `flat_map` to test the ability to have basic exception guarantee when underlying container throws on `insert` / `emplace` of a single element.
https://github.com/llvm/llvm-project/blob/ffb9bbfd0745dc22e1fd6edd7b62f72b91f4f6de/libcxx/test/std/containers/container.adaptors/flat_helpers.h#L122
Per [[container.reqmts]/66](https://eel.is/c++draft/container.reqmts#66), a sequence container should provide strong exception guarantee in this case.
So supporting underlying containers that don't provide that is nonstandard extension, and should be tested in libcxx test suite instead.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUUzuP4zYQ_jVUQ5xAjfWwCxXr3ShNigBB6oAURxIDmtRxRl7vvw8oex8XBAGuEvSB5Mz30kRuDoi9aM6ieSn0xktM_ZPH268bY3B4LUy0b71o1S-X1esR_wykJ3yOgbULmESrpCO5EVrpgmQkJjnFJEWrJq_5L0LOZ3SwH9BFrxniuB-XvKDUxnnHbxlb9BWl0eRGibcRV3YxyHnTSQdGlK8LBrkFi8m_uTDL8X0TyUuKryRjyINcIEz7ZAFDBvC-fkbiJLUkF2aPEj1eMHAp1JNQTwvzSuLwJGAQMMyOl82UY7wIGLy_vn--rSn-jSMLGIyPRsAwTeZkzGRVVzd2BMBqsi1a25kWpg7MqZrqqbWYH3BmvN0EDJm7gIHYChg-WNDXn1JbvXLcwV25Bf2KicpFwOG3CuC-9e-Y5G7g-fNmwu8XJtG8CBjadv8ef2SH6Eu3jxNwFnC2SU_8w_THG3BoWwEnAc9ZNvy-YRjxi-60xM1buaZ4dRYlcYph_k_vckAWR3LUhA_F_4iStnWNibOZX3z9HECSF83SxiCg4485O-hIhhiIdbA6WYk3xkAun3zeI_fYzeAetXtG7w7cs0eb47wXMWpbFrY_2NPhpAvsq67umk4paIqlb7upGTul1QE76BQ0R2W07Y41HMcWq0PhelDQqKY6VqA61ZRGVacTTidsR92p2oha4UU7X-YAlTHNhSPasK9qVdfHwmuDnvYaAuQF754IgFzL1O-xM9tMolbeEdPnO-zY7wX-cq15Ec15D1jz8u8mEts7942Q5P8W-3Vx4_LQ-Nu7yMWWfP_TRdnZ5rQ9CF97-CcAAP__Z3B9cQ">