------- Comment #2 from dodji at gcc dot gnu dot org 2010-01-05 11:43 ------- FWIW, I think this code is valid.
The A template parameter in "typename identity<A>::type..." is in a non-deduced context, so it's argument should not be deduced from there. The argument of A should be re-used from the deduction done using "RT (*) (A...)". And I think that's where the problem is. Once the compiler figured the second argument of forward_call is a non-deduced context, it fails to re-use the argument of A that was deduced in the context of the first argument of forward_call. I believe this should be flagged P1, even if it doesn't seem to be a regression. -- dodji at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40155