------- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-11 14:11 -------
This code is ill-formed, and should be rejected because "Args" cannot be
deduced from "typename Args::is_applied". Interestingly enough, this problem
actually has nothing to do with variadic templates: take away the parameter
pack and we still accept this ill-formed code:

  template<typename T>
  struct ugh {};

  template<typename T> struct ugh<typename T::is_applied> { };

The problem is that, when we're marking template parameters in
process_partial_specialization via for_each_template_parm, we mark *all*
template parameters, not just those that are in deduced contexts. I'm working
on a fix now...


-- 

dgregor at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
           Keywords|ice-on-invalid-code         |accepts-invalid
   Last reconfirmed|2007-11-19 04:44:27         |2008-01-11 14:11:27
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33964

Reply via email to