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