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