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."