The enclosing requires-expression will evaluate to false
if substitution of template arguments fails.
— end note]
[Example 1: template<typename T, typename T::type =0>struct S;
template<typename T>using Ref = T&;
template<typename T>concept C =requires{typename T::inner; // required nested member nametypename S<T>; // required valid ([temp.names]) template-id;// fails if T::type does not exist as a type to which 0 can be implicitly convertedtypename Ref<T>; // required alias template substitution, fails if T is void};
— end example]