title: Ambiguity in calling function. Implicit conversion?
body: <pre><code>#include &lt;string&gt;
  
  void f(std::string&amp;&amp; rref){
  }
  
  void f(std::string s){ 
  }
  
  int main() {
      std::string s = "s";
      f(std::move(s));
  }
  </code></pre>
  
  <p>This code causes an ambiguity and I don't know why, perhaps, I made explicit conversion to <em>rvalue</em> reference. </p>
  
  <p>My idea is that <em>rvalue</em> reference can be implicitly converted to just <em>lvalue</em>.
  But I am not sure. Please explain.</p>