Which default argument is evaluated first and why?
<p>I have three functions, <code>funt1()</code>, <code>funt2()</code>, and <code>funt3()</code>.</p>

<pre><code>int funt1()
{
    cout&lt;&lt;"funt1 called"&lt;&lt;endl;
    return 10;
}

int funt2()
{
    cout&lt;&lt;"funt2 called"&lt;&lt;endl;
    return 20;
}

void funt3(int x=funt1(), int y=funt2())
{
    cout &lt;&lt; x &lt;&lt; y &lt;&lt; endl;
}
</code></pre>

<p>My <code>main</code> function:</p>

<pre><code>int main()
{
    funt3();
    return 0;
}
</code></pre>

<p>When I am calling <code>funt3()</code> in my <code>main()</code> method, why is <code>funt1()</code> is called first, and then <code>funt2()</code>?</p>
