Do calculations with static/global const primitives occur in compile time?
<pre><code>const int thing = 1234;

int func( int hello )
{
    return hello / (thing*123+321);
}
</code></pre>

<p><strong>Is</strong> <code>(thing*123+321)</code> <strong>computed in compile time?</strong></p>

<p>If <code>thing</code> was a user defined type with <code>int operator*</code> would it also happen in compile time?</p>

<p>If <code>thing</code> was a float or double would it also happen in compile time?</p>

<p>If I forcibly change <code>thing</code> in runtime would <code>(thing*123+321)</code> be unchanged?</p>
