// { dg-do compile { target c++2a } } template concept has_mem_type = requires { typename T::type; }; template int f () { return 0; } template char f() { return 0; } struct A; static_assert (sizeof (f()) == 1); struct A { typedef int type; }; static_assert (sizeof (f()) > 1);