https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101739
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- These changes are not strictly necessary. "base" is a reserved name, because of move_iterator::base() etc. and "i" is a reserved name, because of operator""i() in <complex>. So users cannot define those as macros, and so it's safe for us to use them.