Why can't the compiler figure out the right overload for this function reference?
<p>Why doesn't it choose the right overload? I get the errors:</p>

<blockquote>
  <p><code>main.cpp:4:7: error: new declaration ‘int f()’</code><br>
  <code>main.cpp:3:6: error: ambiguates old declaration ‘void f()’</code></p>
</blockquote>

<pre><code>void f() {}
int f() { return 0; }

int main() {

    void (&amp;x)() = f;

    x();

}
</code></pre>
