title: Not allowed to return a function from a function. How could I?
body: <p><code>8.3.5/8 Functions [dcl.fct]</code> says </p>
  
  <blockquote>
    <p>[...] <strong>Functions shall not have a return type of
    type</strong> array or <strong>function</strong>, although they may have a return type of type pointer or reference to such things. [...]</p>
  </blockquote>
  
  <p>Why so explicit of a rule? Is there some syntax that would even allow returning a function as opposed to a function pointer?</p>
  
  <p>Am I miss-interpreting the quote?</p>
  
  <pre><code>typedef void (*fp)();
  
  void foo(){}
  fp goo()
  {
      return foo; //automatically converted to function pointer
  }
  </code></pre>