https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110162
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > See https://gcc.gnu.org/gcc-13/porting_to.html also. I don't think this is related to the new rules. The std::move here is redundant because request is const, so request.body() calls the const overload which returns const std::string* and so std::move(*request.body()) produces a const std::string&& which cannot be moved. It can only be copied. So the move is redundant.