[Bug c++/45236] [C++0x] unhelpful diagnostic for parameter pack that is not last

jason at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Aug 9 17:34:00 GMT 2010



------- Comment #6 from jason at gcc dot gnu dot org  2010-08-09 17:34 -------
14.1 paragraph 11 says,

If a template-parameter of a class template is a template parameter pack, it
shall be the last template-parameter.

This isn't quite right: what we really want to require is that if a
partial-specialization argument (or the equivalent transformed parameter for a
primary template) is a pack expansion, it is the last one.  But that also
applies to your testcase #5, which is ill-formed.  Your testcase in comment #4
is OK because none of the partial specialization arguments are pack expansions.

As Paolo says, we ought to give a better error.


-- 

jason at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |diagnostic
   Last reconfirmed|0000-00-00 00:00:00         |2010-08-09 17:34:37
               date|                            |
            Summary|[C++0x] Can't access nested |[C++0x] unhelpful diagnostic
                   |type of a partial class     |for parameter pack that is
                   |specialization involving    |not last
                   |variadic parameters         |


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



More information about the Gcc-bugs mailing list