https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109084
--- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> --- template<typename T> class MyClass { private: static constexpr bool cond = true; public: MyClass(T) requires cond; }; MyClass c{0}; The problem seems to be that the access context during satisfaction of #1's implicit guide [with T=int] is MyClass<T> instead of MyClass<int>, and MyClass<int>::cond (the substituted result of maybe_dependent_member_ref) is considered inaccessible from MyClass<T>.