C++ define expression evaluation
<p>Suppose we have this expression:</p>

<pre><code>#define cube(x) x * x * x
</code></pre>

<p>And then we call it:</p>

<pre><code>int n = 3, v;
v = cube(n + 1);   // v = 10
v = cube((n + 1)); // v = 64
v = cube(n);       // v = 27
</code></pre>

<p>So the question is: why first operation do not make <code>v = 64</code>?</p>