https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67829
Bug ID: 67829 Summary: Bogus "ambiguous template instantiation" error with partial specializations involving a template template parameter Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rs2740 at gmail dot com Target Milestone: --- Repro: template<class> class Purr { }; template<template<class> class, class> class Meow; template<template<class> class P> class Meow<P, P<int>> { }; // 1 template<template<class> class P, class T> class Meow<P, P<T>> { }; // 2 Meow<Purr, Purr<int>> kitty; This should be unambiguous (and use #1), but GCC reports an ambiguity.