https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100375
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- constructing pair<T*, int> using (0, 0) is non-standard. The point of r12-220 was to deprecate it, so it warns. Apparently I didn't manage to do that correctly. I'll look into that, but if you want to initialize a pointer when templates are involved (which is the case for std::pair's constructors) then don't use 0.