FS
Size: a a a
FS
LH
FS
FS
LH
FS
N
VV
AT
D
interface Fooable { void foo() }
void <T> foo1(T foo) { foo.foo(); } // error
void <T : Fooable> foo2(T foo) { foo.foo(); } // ok
template <typename T>
concept Fooable = requires(T foo) { foo.foo(); }
template <typename T>
void foo1(T obj) { obj.foo(); } // ok if T has foo
template <typename T>
requires Fooable<T>
void foo2(T obj) { obj.foo(); } // ok
VV
MU
MU
TS
TS
AV