Same in C++. You can't do much with the function type itself as there are no objects with that type, but you can create references and pointers to it.
But
typedef void * (type) (void * args); type foo; a = foo (b);
But
works?