A constrained member function can be defined out of line:
template<typename T> concept C = requires {
typename T::type;
};
template<typename T> struct S {
void f() requires C<T>;
void g() requires C<T>;
};
template<typename T>
void S<T>::f() requires C<T> { }
template<typename T>
void S<T>::g() { }
—
end example]