I've always struggled with remembering the syntax for function type typedefs:
we can now use
typedef RETTY (*FNTYNAME)(ARGTY1, ARGTY2, ..., ARGTYn);
using for a far more pleasant syntax:
which is also intuitive. You write down the "type"
on the right hand side, and give it a name on the left.
This is not strictly the same, since the
using FNTYNAME = RETTY(ARGTY1, ARGTY2, ..., ARGTYn);
FNTYNAME to a function pointer type, while
the C++ version typedefs the function type. I prefer
the latter at any rate, since I dislike the fact
that the usual typedef tends to hide the fact that a
function pointer is some pointer-like-thing.