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



Jason Merrill <jason at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

           Keywords|ice-on-valid-code           |ice-on-invalid-code

           Priority|P2                          |P3

             Status|NEW                         |ASSIGNED

         AssignedTo|unassigned at gcc dot       |jason at gcc dot gnu.org

                   |gnu.org                     |



--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2012-12-05 
17:46:21 UTC ---

This code is actually ill-formed; the specialization



template <typename R, template <class T> class D>

struct E <R (), D>::G <R (*) (), D>

{

};



only has one template-header, and should have two.  Furthermore, this is a full

specialization of a member of a partial specialization, which is not allowed.



14.8/16: "the declaration shall not explicitly specialize a class member

template if its enclosing class templates are not explicitly specialized as

well."

Reply via email to