https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108952
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2023-02-27 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The problem is that std::move(pr).first always yields an lvalue, even if the type of pr is pair<T&&, U&&>. I tried to simplify uses_allocator_construction_args to avoid indirection, which I think is the source of this issue.