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 A::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 paramete

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

2012-03-09 Thread Dodji Seketeli
Jason Merrill writes: > 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 A::f, the >> level of the parameter pack Us is NOT reduced, even if it ought to be >> considered as morall

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 i

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

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

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: template 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

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

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

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: template 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 parms still has two entries