title: Return function pointer to function that returns the same type
body: <p>In C, how can I declare a function that returns a function that returns a function etc.
  I.e., I want something like this</p>
  
  <pre><code>typedef A (*A)();
  A a = ...
  a()()()()();
  </code></pre>
  
  <p>I want to achieve the following C++ behavior:</p>
  
  <pre><code>struct A { A operator()() { return A(); } };
  A a;
  a()()()()();
  </code></pre>