1// { dg-do compile }
2
3// Origin: Philippe Van Deyck <hetadres@email.com>
4
5// PR c++/13520: Default template template argument that is a qualified id
6// with dependent scope.
7
8template<typename regular_type> class Policy {};
9
10template <typename regular_type, template<typename> class OriginalPolicy>
11class ChangedPolicy_impl {};
12
13template <template<typename> class OriginalPolicy > class ChangedPolicy {
14public:
15  template<typename regular_type> class Type : public
16  ChangedPolicy_impl<regular_type,OriginalPolicy> { };
17};
18
19template <typename regular_type, template<typename> class Policy1,
20	  template<typename> class Policy2
21	    = ChangedPolicy<Policy1>::template Type>
22class Host : public Policy1<regular_type>, public Policy2<regular_type> { };
23
24int main()
25{
26  Host<void, Policy> h;
27  return 0;
28}
29