title: Is it possible to declare a function type that uses itself as an argument in C++?
body: <p>For instance, is there any legal equivalent to this?</p>
  
  <pre><code>typedef void (*SelfReferencingFnPtr)(int, SelfReferencingFnPtr);
  </code></pre>
  
  <p>With clang, this causes the error "unknown name SelfReferencingFnPtr".</p>
  
  <p>The best I was able to come up with is a functor whose <code>operator()</code> accepts its own type.</p>