https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108846
--- Comment #31 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jiang An from comment #4) > But I think it's only closedly related to uninitialized memory algorithms > (which perform initialization instead of assignment), and there's already a > note saying that it's UB to use them to initialize potentially-overlapping > objects ([specialized.algorithms.general]/3). For the record, that note was removed for C++23, see https://github.com/cplusplus/draft/issues/6143 But the uninitialized algos do still reuse storage, so this problem doesn't apply to them.