2 // { dg-require-effective-target c++11 }
5 template <typename> using __allocator_base = B;
6 template <typename> class F : __allocator_base<int> {};
8 template <typename, typename = F<int> > class G : C {};
9 template <typename> class D;
11 using Container = G<D<char>>;
16 template <template <class, class> class C, class A = F<D<int>>>
17 void doSomething(C<D<char>, A> &);
18 A::A(D<char> const &) : A() { doSomething(m_elements); }