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