https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80290
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- Or even just: #include <utility> typedef std::pair<unsigned, std::pair<const char *, std::pair<const char *, std::pair<const char *, std::pair<const char *, const char *> > > > > FruMap; #define INIT { 1, { "", { "", { "", {"",""}, }, } }, } extern const FruMap frus[] = { INIT, INIT, INIT, INIT, INIT, }; All the time is spent in implicit_conversion().