view gcc/testsuite/g++.dg/cpp1y/pr72759.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// 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" }
}