// PR c++/51385 template <__SIZE_TYPE__ N> struct NTmpl; template > struct PtrConvs { enum { bad = 1 }; }; template struct PtrConvs >; template struct test { static const bool value = true; }; template<> struct test { static const bool value = false; }; template struct FussyTemplate { int sa[test::value ? 1 : -1]; }; struct B { }; typedef char chk[1]; typedef char chk[PtrConvs, B>::bad];