1 // Test that passing a non-variadic template to a variadic TTP works
2 // with explicit template arguments in a function call..
3 // { dg-do compile { target c++11 } }
4 
5 template<template<typename> class Property, typename Type>
6 bool test_property(typename Property<Type>::value_type value);
7 
8 template<template<typename...> class Property,
9 	 typename Type1, typename... Types>
10 bool test_property(typename Property<Type1, Types...>::value_type value);
11 
12 template <class T>
13 struct X
14 {
15   using type = X;
16   using value_type = int;
17   static const value_type value = 42;
18 };
19 
main()20 int main()
21 {
22   test_property<X,int>(42);	// { dg-error "ambiguous" }
23 }
24