title: Assigning a number to std::string is now allowed?
body: <p>Consider the following code snippet:</p>
  
  <pre><code>#include &lt;iostream&gt;
  int main() {
      std::string foo;
      foo = -1; // why is the compiler not complaining about this?
      std::cout &lt;&lt; "1" &lt;&lt; std::endl;
      std::cout &lt;&lt; foo &lt;&lt; std::endl;
      std::cout &lt;&lt; "2" &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>Actual output (both ideone.com C++14 mode and GCC 4.8.4):</p>
  
  <pre>&lt;no output&gt;</pre>
  
  <p>Questions:</p>
  
  <ol>
  <li>Why did the code snippet compile at all?</li>
  <li>Commenting out <code>foo = -1</code>, I get the correct stdout (<code>1</code> and <code>2</code>). What has the compiler compiled with <code>foo = -1;</code> that causes the subsequent <code>cout</code>s to fail?</li>
  </ol>