https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87614
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Yes, that warning seems useful. The user has caused a conversion that alters the value. The fact it happens deep inside libstdc++ headers is only because the library templates preserve the types all the way down the call stack.