https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110149
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- GCC's formatter<const void*, charT> specialization has: // _GLIBCXX_RESOLVE_LIB_DEFECTS // P2519R3 Formatting pointers __first = __spec._M_parse_zero_fill(__first, __last); if (__finished()) return __first; __first = __spec._M_parse_width(__first, __last, __pc); if (__first != __last && (*__first == 'p' || *__first == 'P')) { if (*__first == 'P') __spec._M_type = __format::_Pres_P; ++__first; } Arguably, P2591 is not fixing a defect and so parsing '0' and 'P' could be guarded behind a check for #if __cplusplus > 202302L but I think it's more useful to treat this as a fix for C++20 and C++23, not just a C++26 change.