// PR c++/96204 // { dg-do compile { target c++14 } } // A variant of access40.C where has_type_member is a variable template instead // of a class template. template constexpr bool has_type_member = false; template constexpr bool has_type_member = true; struct Parent; struct Child { private: friend struct Parent; typedef void type; }; struct Parent { // The partial specialization does not match despite Child::type // being accessible from the current scope. static_assert(!has_type_member, ""); };