[Bug c++/40092] -std=gnu++0x expansion pattern fails with error about derived template instead of actual template
cppljevans at suddenlink dot net
gcc-bugzilla@gcc.gnu.org
Thu Aug 13 19:15:00 GMT 2009
------- Comment #10 from cppljevans at suddenlink dot net 2009-08-13 19:15 -------
Created an attachment (id=18356)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18356&action=view)
minimal test case demonstrating bug
The comments at bottom show that wrong template instance is being
selected by cp_tree_equal. For example, with:
//#define INTEGRAL0_C
cp_tree_equal tries to select the integral_c<,Values> from struct package_c for
integral1_c<,Value_1>::type_1; however, since Value_1
is not a parameter pack, compiler gives confusing error message about
Values not being expanded,
OTOH, with:
#define INTEGRAL0_C
the compiler tries to use the type of integral0_c<,Value_0>::type_0
for the integral<,Values> in the supertype of package_c; however, since,
in this case, Value_0 is not a parameter pack, compiler gives error
about no contained argument packs.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40092
More information about the Gcc-bugs
mailing list