Jason Merrill <ja...@redhat.com> writes: > On 03/28/2012 11:02 AM, Dodji Seketeli wrote: >> For: >> >> template<class T, template<class U, T> class TT> struct S; >> >> the parms of TT do have a level 1 that contains the parm T. It seems to >> me that we need T and U to have different levels here, so both cannot >> have level 1. > > Why do we need them to have different levels? They are parameters of > different templates.
Then, if U and T have the same level, how do we represent the full set of template parms up to U for instance? I mean if that TREE_LIST of parms still has two entries - one for level 1 that contains T and one for level N (which you say should be 1 as well) that contains U - would the TREE_PURPOSEs of both entries have a 1 as their level number? I agree there are parameters of different templates at play here, but it seems like there are cases when we need to tie them together, like what lookup_template_class_1 does when the relevant template is a template template parameter. What am I missing? -- Dodji