1 // PR c++/66289
2 // { dg-do compile { target c++11 } }
3 
4 template<typename T> struct A {};
5 
6 template<typename T> struct shared_ptr { };
7 template<typename T> using APtr = shared_ptr<A<T>>;
8 
9 template<typename T> struct foo;
10 template<typename T> struct foo<shared_ptr<T>> { };
11 template<typename T> struct foo<APtr<T>> { };
12 
13 foo<shared_ptr<A<int>>> aa;
14