From § 8.3.5.11 of ISO/IEC 14882:2011(E):

> 
> A typedef of function type may be used to declare a function but shall not be used to deﬁne a function
> 
> 
> 

The standard goes on to give this example:

```
typedef void F();
F fv; // OK: equivalent to void fv();
F fv { } // ill-formed
void fv() { } // OK: deﬁnition of fv

```

What motivates this rule? It seems to limit the potential expressive usefulness of function typedefs.