https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98611
--- Comment #6 from Björn Sundin <bjornsundin02 at gmail dot com> --- (In reply to CVS Commits from comment #5) > The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: > > https://gcc.gnu.org/g:e0bec6ceac47752616dd9fe0801344ed45db2fd3 > > commit r11-6614-ge0bec6ceac47752616dd9fe0801344ed45db2fd3 > Author: Patrick Palka <ppa...@redhat.com> > Date: Tue Jan 12 09:34:41 2021 -0500 > > c++: Fix ICE with CTAD in concept [PR98611] > > This patch teaches cp_walk_subtrees to visit the template represented > by a CTAD placeholder, which would otherwise be not visited during > find_template_parameters. The template may be a template template > parameter (as in the first testcase), or it may implicitly use the > template parameters of an enclosing class template (as in the second > testcase), and in either case we need to visit this tree to record the > template parameters used therein for later satisfaction. > > gcc/cp/ChangeLog: > > PR c++/98611 > * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit > the template of a CTAD placeholder. > > gcc/testsuite/ChangeLog: > > PR c++/98611 > * g++.dg/cpp2a/concepts-ctad1.C: New test. > * g++.dg/cpp2a/concepts-ctad2.C: New test. Brilliant! Appreciate you :). IsInstantiationOf is a very useful generic concept that I'd love to be able to use in my project, so I'm happy this was fixed.