Why is f(x).swap(v) okay but v.swap(f(x)) is not?
<p>We have:</p>

<pre><code>vector&lt;int&gt; f(int);

vector&lt;int&gt; v;
</code></pre>

<p>This works:</p>

<pre><code>f(x).swap(v);
</code></pre>

<p>This doesn't:</p>

<pre><code>v.swap(f(x));
</code></pre>

<p>And why?</p>
