Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-28 Thread Dodji Seketeli
Jason Merrill ja...@redhat.com writes: + /* This can happen for template parms of a template template +parameter, e.g: + +templatetemplateclass T, class U class TT struct S; + +Consider the level of the parms of TT; T and U both have +level 2; TT has

Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-28 Thread Jason Merrill
On 03/28/2012 11:02 AM, Dodji Seketeli wrote: For: templateclass T, templateclass 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

Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-28 Thread Dodji Seketeli
Jason Merrill ja...@redhat.com writes: On 03/28/2012 11:02 AM, Dodji Seketeli wrote: For: templateclass T, templateclass 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

Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-28 Thread Jason Merrill
On 03/28/2012 12:08 PM, Dodji Seketeli wrote: On 03/28/2012 11:02 AM, Dodji Seketeli wrote: templateclass T, templateclass U, T class TT struct S; 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

Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-13 Thread Jason Merrill
On 03/08/2012 08:21 AM, Dodji Seketeli wrote: So I needed to say somehow that the P in the pack expansion (in the pattern) is actually a Pr in spirit. Ah, I see. +/*we will fixup the siblings for Space and capital W. +get_root_index_same_level (tree

Re: [PATCH] PR c++/50852 - Revisit dependant template parameter

2012-03-08 Thread Jason Merrill
On 03/08/2012 08:21 AM, Dodji Seketeli wrote: [Handle fix-up for level-reduced a template parameter pack] In the partial instantiation of the member template Aint::f, the level of the parameter pack Us is NOT reduced, even if it ought to be considered as morally reduced. The level of the