title: Explicit cast to r-value reference does not clear ambiguity
body: <p>Regarding the following code:</p>
  
  <pre><code>void foo( int in )
  {
    std::cout &lt;&lt; "no ref" &lt;&lt; std::endl;
  }
  
  void foo( int&amp;&amp; in )
  {
    std::cout &lt;&lt; "ref&amp;&amp;" &lt;&lt; std::endl;
  }
  
  
  int main()
  { 
    foo( static_cast&lt;int&amp;&amp;&gt;(1) );
  
    return 0;
  }
  </code></pre>
  
  <p>I wonder why the call to <code>foo( static_cast&lt; int&amp;&amp; &gt;(1) )</code> is ambiguous:</p>
  
  <pre><code>error: call to 'foo' is ambiguous
    foo( static_cast&lt;int&amp;&amp;&gt;(1) );
    ^~~
  </code></pre>
  
  <p>Because of the explicit cast to <code>int&amp;&amp;</code>, I expected that <code>void foo( int&amp;&amp; in )</code> will be called.</p>