This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ PATCH] Nested non-type template parameter packs using outer template parameter packs (PR c++/35022)

Unfortunately, the part of this patch that fixed PR 35022 collided
with the implementation of N2555 (extending variadic template template
parameters). On further inspection, that part of this patch (which
concerns coerce_template_parameter_pack) was fixing the symptom and
not the cause of 35022.

Since this patch actually fixed three separate problems, I've
committed the fixes for sizeof... and parsing of unnamed non-type
template parameter packs to mainline along with the related test
cases. I'll take another shot at fixing 35022 separately. The
committed patch is below; it's just a subset of the already-approved
patch, which removes the changes to coerce_template_parameter_pack.

  - Doug

2008-03-27  Douglas Gregor  <>

	* pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope with
	tsubst_pack_expansion returning a pack expansion, or a TREE_VEC
	ending in a pack expansion, both of which can occur when
	substituting into a nested template.
	(tsubst_copy_and_build) <case SIZEOF_EXPR>: When we're
	instantiating the sizeof...(X) form, make tsubst_copy do the work.
	* parser.c (cp_parser_template_parameter): Deal with unnamed
	non-type template parameter packs identified by pack expansions in
	the parameter type.

2008-03-27  Douglas Gregor  <>

       * g++.dg/cpp0x/variadic91.C: New.

Attachment: vt-fixes.patch
Description: Binary data

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]