// RUN: %clang_cc1 -std=c++20 -x c++ %s -verify -fsyntax-only // expected-no-diagnostics template concept HasMemberBegin = requires(T0 t) { t.begin(); }; struct GetBegin { template void operator()(T1); }; GetBegin begin; template concept Concept = requires(T2 t) { begin(t); }; struct Subrange; template struct View { Subrange &getSubrange(); operator bool() requires true; operator bool() requires requires { begin(getSubrange()); }; void begin(); }; struct Subrange : View {}; static_assert(Concept);