Implement P0522R0, matching of template template arguments.
gcc/c-family/ * c.opt (-fnew-ttp-matching): New flag. * c-opts.c (c_common_post_options): Default on if -std=c++1z. gcc/cp/ * pt.c (coerce_template_template_parms): Allow a template argument that's less specialized than the parameter. (unify_bound_ttp_args): Adjust parm's args to apply to arg's template. (coerce_template_args_for_ttp): Split out from lookup_template_class_1. (coerce_ttp_args_for_tta, store_defaulted_ttp) (lookup_defaulted_ttp, add_defaults_to_ttp): New. (process_partial_specialization): Set DECL_CONTEXT of template template-parameters. (coerce_template_parms): Only inform when complain. (expand_template_argument_pack): Handle error_mark_node. (convert_template_argument, template_args_equal, unify): Handle any_targ_node. * cp-tree.h (enum cp_tree_index): Add CPTI_ANY_TARG. (any_targ_node): New. * decl.c (cxx_init_decl_processing): Set it. * name-lookup.c (consider_binding_level): Ignore names with embedded spaces. From-SVN: r243871
Showing
This diff is collapsed.
Click to expand it.
gcc/testsuite/g++.dg/cpp0x/variadic-ex14a.C
0 → 100644
gcc/testsuite/g++.dg/cpp0x/variadic-ttp4.C
0 → 100644
gcc/testsuite/g++.dg/cpp0x/variadic-ttp5.C
0 → 100644
gcc/testsuite/g++.dg/cpp0x/variadic79a.C
0 → 100644
gcc/testsuite/g++.dg/cpp0x/variadic85a.C
0 → 100644
gcc/testsuite/g++.dg/cpp1z/ttp1.C
0 → 100644
gcc/testsuite/g++.dg/template/ttp16a.C
0 → 100644
gcc/testsuite/g++.dg/template/ttp17a.C
0 → 100644
gcc/testsuite/g++.old-deja/g++.pt/ttp49a.C
0 → 100644
Please
register
or
sign in
to comment