diff options
author | Jason Merrill <jason@redhat.com> | 2011-10-02 17:45:01 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-10-02 17:45:01 -0400 |
commit | d6027563413543e1607fdc8752e4c4f238fad350 (patch) | |
tree | b61148189571cf1915a392bca2875a7a41bc9a61 /libstdc++-v3/testsuite/util | |
parent | f10eaa2dcc0081c7abbc326b500b84e03f777d05 (diff) | |
download | gcc-d6027563413543e1607fdc8752e4c4f238fad350.zip gcc-d6027563413543e1607fdc8752e4c4f238fad350.tar.gz gcc-d6027563413543e1607fdc8752e4c4f238fad350.tar.bz2 |
re PR c++/35722 ([C++0x] Variadic templates expansion into non-variadic class template)
PR c++/35722
Implement N2555 (expanding pack expansion to fixed parm list)
* pt.c (coerce_template_parms): Allow expanding a pack expansion
to a fixed-length argument list.
(unify_pack_expansion): Handle explicit args properly.
(unify) [TREE_VEC]: Handle pack expansions here.
[TYPE_ARGUMENT_PACK]: Not here.
(tsubst_pack_expansion): Don't try to do partial substitution.
(pack_deducible_p): New.
(fn_type_unification): Use it.
(find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
of a type parameter.
(check_non_deducible_conversion): Split from type_unification_real.
(unify_one_argument): Split from type_unification_real...
(unify_pack_expansion): ...and here. Drop call_args_p parm.
(type_unification_real, unify, more_specialized_fn): Adjust.
From-SVN: r179436
Diffstat (limited to 'libstdc++-v3/testsuite/util')
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_tr1.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libstdc++-v3/testsuite/util/testsuite_tr1.h b/libstdc++-v3/testsuite/util/testsuite_tr1.h index 94207a6..f063896 100644 --- a/libstdc++-v3/testsuite/util/testsuite_tr1.h +++ b/libstdc++-v3/testsuite/util/testsuite_tr1.h @@ -68,13 +68,14 @@ namespace __gnu_test } #ifdef __GXX_EXPERIMENTAL_CXX0X__ - template<template<typename...> class Property, typename... Types> + template<template<typename...> class Property, + typename Type1, typename... Types> bool - test_property(typename Property<Types...>::value_type value) + test_property(typename Property<Type1, Types...>::value_type value) { bool ret = true; - ret &= Property<Types...>::value == value; - ret &= Property<Types...>::type::value == value; + ret &= Property<Type1, Types...>::value == value; + ret &= Property<Type1, Types...>::type::value == value; return ret; } #endif |