https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59253
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2018-07-31 Ever confirmed|0 |1 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Léo Terziman from comment #0) > Moreover, in std::map, the keys and > values are mixed together in the same list instead of producing a list of > pairs with 'first' and 'second' attributes. I don't know what you mean by "mixed together in the same list", they are printed as [key] = value, [key] = value, [key] = value e.g. $1 = std::map with 3 elements = {["bar"] = 2, ["baz"] = 3, ["foo"] = 1} With your patch I get: $1 = std::map with 3 elements = {[{first = "bar", second = 2}] = {first = "baz", second = 3}, [{first = "foo", second = 1}] = } This is not an improvement! The smart pointer printers have been improved for gcc-8, do you still think something needs to be changed?