[PATCH] PR c++/52343 - error with alias template as template template argument

Dodji Seketeli dodji@redhat.com
Sat Dec 22 15:53:00 GMT 2012


Gabriel Dos Reis <gdr@integrable-solutions.net> writes:

> Thank you very much for the explanation; your previous message
> makes sense to me now.

You are welcome.

> The question I have is why are we using TREE_TYPE of a TEMPLATE_DECL
> to represent the current instantiation of a template alias?

My understanding is that in the instantiation at line 7 below

     1	template<typename>
     2	using A = int;
     3	
     4	template<template<class> class>
     5	struct B {};
     6	
     7	B<A> b;

check_instantiated_arg is not looking at the current instantiation of
the template alias A.  Rather, it is looking at the template-name A
(which resolved, IMHO rightfully, to the decl for A which happens to be
a TEMPLATE_DECL).  This seems consistent with the fact that the
parameter of B is a template itself so its argument ought to be
template-name, rather than a template instantiation.

-- 
		Dodji



More information about the Gcc-patches mailing list