https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64297
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- struct A { typedef int X; template <int> X m_fn1() const; }; template <typename> struct is_function {}; is_function<int() const &> i; struct D { template <typename Y, typename = is_function<Y>> D(Y); } b(&A::m_fn1<0>);