// P0846R0
// { dg-do compile }
// { dg-options "-std=c++2a" }
// Don't get confused by these valid cases.
template <class>
class A {
  template <bool> void b();
  void m_fn1();
};
template <class T>
void A<T>::m_fn1() { b<>(0); }
template <int> struct X {
  X() { fn<>(0); }
  template <int> void fn();
};
template <typename> void a() { a<int>; }