title: how to initialize function arguments that are classes with default value
body: <p>I'm working on Linux gcc environment and I need to initilize function arguments that are classes with default values.
  When I do that with temporary instance of the class it makes an error like this: "default argument for [function argument] has type [class name].
  for example:</p>
  
  <pre><code>void foo(std::wstring&amp; str = std::wstring())
  </code></pre>
  
  <p>error: default argument for 'std::wstring&amp; str' has type 'std::wstring'
  P.S. this code is compiled without any error or warning with VC++.</p>
  
  <p>How can I initilize the default value?</p>