title: Nicer syntax for setting default argument value to default constructor
body: <p>One might want to declare a function with an argument, and specify that the default value for the argument is the result of the type's default constructor:</p>
  
  <pre><code>void foo(a::really::long::type::name arg = a::really::long::type::name());
  </code></pre>
  
  <p>Is there a nicer syntax for this that doesn't involve entering the type name twice? Something like:</p>
  
  <pre><code>void foo(a::really::long::type::name arg = default);
  </code></pre>
  
  <p>I realize I can <code>typedef</code> the type name to make it prettier, but I'm curious whether such a syntax exists.</p>