blob: 4af6ea471205e6f6b95074ebaddc70facb486af0 [file] [log] [blame]
// PR c++/72759
// { dg-do compile { target c++14 } }
template <typename> struct SpecPerType;
class Specializer {
public: template <bool> static void MbrFnTempl();
template <unsigned> struct A { static void InnerMemberFn(); };
void Trigger() { A<0>::InnerMemberFn; }
};
template <> struct SpecPerType<Specializer> {
using FnType = void *;
template <bool P>
static constexpr FnType SpecMbrFnPtr = Specializer::MbrFnTempl<P>;
};
template <unsigned X> void Specializer::A<X>::InnerMemberFn() {
using Spec = SpecPerType<Specializer>;
Spec ErrorSite = Spec::SpecMbrFnPtr<SpecMbrFnPtr>; // { dg-error "not declared" }
}