1 // PR c++/72759 2 // { dg-do compile { target c++14 } } 3 4 template <typename> struct SpecPerType; 5 class Specializer { 6 public: template <bool> static void MbrFnTempl(); 7 template <unsigned> struct A { static void InnerMemberFn(); }; Trigger()8 void Trigger() { A<0>::InnerMemberFn; } 9 }; 10 template <> struct SpecPerType<Specializer> { 11 using FnType = void *; 12 template <bool P> 13 static constexpr FnType SpecMbrFnPtr = Specializer::MbrFnTempl<P>; 14 }; 15 template <unsigned X> void Specializer::A<X>::InnerMemberFn() { 16 using Spec = SpecPerType<Specializer>; 17 Spec ErrorSite = Spec::SpecMbrFnPtr<SpecMbrFnPtr>; // { dg-error "not declared" } 18 } 19