title: C++11 ambiguity between declarator and abstract-declarator in parameter clause?
body: <p>Consider the following C++11 code:</p>
  
  <pre><code>struct C {};
  
  void f(int(C));
  </code></pre>
  
  <p>Is the type of <code>f</code> the same as:</p>
  
  <pre><code>typedef int T(C);
  void f(T);
  </code></pre>
  
  <p>or is it like:</p>
  
  <pre><code>void f(int C);
  </code></pre>
  
  <p>That is, should the <code>(C)</code> be interpreted as a <code>declarator</code> of the parameter name <code>C</code>, or as an <code>abstract-declarator</code> of a function parameter ?</p>
  
  <p>Where is this specified in the standard?</p>