Consider
using foo = int; struct A { typedef A (foo)(); };
GCC and ICC accept the snippet, while Clang and MSVC reject it. Clang\'s erro