Is this a valid C++ function or not?
<p>It seems to me that this function would not be valid since it uses the keyword 'default' as an identifier:</p>

<pre><code>int foo()
{
    int default = 42;
    return default;
}
</code></pre>

<p>However, the Microsoft C++ compiler (versions 14.00.50727.762 and 15.00.30729.0) compile the code without warnings or errors (using the simplest possible command line: 'cl foo.cpp').</p>

<p>Dev-C++ 4.9.9.2 does generate errors when compiling the function.</p>

<p>This seems like such an obvious problem that I must be overlooking something.</p>

<p><strong>Edit:</strong> <a href="http://stackoverflow.com/users/34509/litb">litb</a> dug up the <strong>Duplicate</strong> for this question <a href="http://stackoverflow.com/questions/664123/default-as-a-variable-name/664134#664134">Default as a variable name</a>.</p>
