https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86412
--- Comment #2 from Ulya <skvadrik at gmail dot com> --- Sorry, forgot to paste the last line in the minimal file: template <typename> class a; template <typename> class b; class c { virtual bool d(); }; template <typename> class e : c { public: template <typename f> e(f); }; void g() { (e<b<a<class h>>>(g)); }