Un-named parameter in function definition
<p>I understand that function prototypes don't need to have a name associated with the parameters.  For example:</p>

<pre><code>void foo(int, std::string);
</code></pre>

<p>I was interested to find out recently that you could do the same thing in a function definition though:</p>

<pre><code>void* foo(void*) { std::cerr &lt;&lt; "Hello World!" &lt;&lt; std::endl; }
</code></pre>

<p>Why does this work and how could you ever make use of an un-named parameter?  Is there a reason this is allowed (like maybe dealing with legacy interfaces or something along those lines)?</p>
