1 // PR c++/64574
2 
3 template<class T>
4 class TraitCheckImpl;
5 
6 template<class T, class>
7 class Swappable;
8 template<class T, class=typename TraitCheckImpl<Swappable<T, void> >::Complete>
9 class Swappable;
10 
11 template<class T>
12 struct TraitCheckImpl<Swappable<T> > {
13     typedef void Complete;
14 };
15 
16 Swappable<int> s;  // { dg-error "" }
17