title: C++ understand reference in default parameter
body: <p>I have a question about reference in default parameter in C++.</p>
  
  <p>Exemple : <code>SWindows(const std::string&amp;, int, const std::string&amp; flag = "UDP");</code></p>
  
  <p>I don't understand why this code compile (IDE Visual studio 2012).
  For me, a reference it's an object alias. So We can't declared this line. It's supposed that the "flag" already exists. </p>
  
  <p>So it's a compiler optimization or a misunderstanding ?</p>