title: (Known) compiler bug in VC12?
body: <p>This program, when compiled with VC12 (in Visual Studio 2013 RTM)<sup>[1]</sup> leads to a crash (in all build configurations), when really it shouldn't:</p>
  
  <pre><code>#include &lt;string&gt;
  
  void foo(std::string const&amp; oops = {})
  {
  }
  
  int main()
  {
      foo();
  }
  </code></pre>
  
  <p>I know of two silent bad codegen bugs that <strong><em>might</em></strong> be related:</p>
  
  <ul>
  <li><a href="https://connect.microsoft.com/VisualStudio/feedback/details/800364/initializer-list-calls-object-destructor-twice">https://connect.microsoft.com/VisualStudio/feedback/details/800364/initializer-list-calls-object-destructor-twice</a></li>
  <li><a href="http://connect.microsoft.com/VisualStudio/feedback/details/800104/">http://connect.microsoft.com/VisualStudio/feedback/details/800104/</a></li>
  </ul>
  
  <p>Honestly I think these are different, though. Does anyone know </p>
  
  <ol>
  <li>whether there is an actively tracked bug on connect for this</li>
  <li>whether there is a workaround (or an explicit description of the situation that causes this bug, so we can look for it/avoid it in our code base)?</li>
  </ol>
  
  <hr>
  
  <p><sup>[1]</sup> Just create an empty project using the C++ Console Application 'wizard'. For simplicity, disable precompiled headers and leave all defaults: <a href="http://i.stack.imgur.com/rrrnV.png">http://i.stack.imgur.com/rrrnV.png</a></p>