Is the const qualifier useful when copy-inizializing a variable?
<p>I would like to know what are advantages and disadvantages when using the optional <code>const</code> qualifier when initializing <strong>non-ref/pointer</strong> variables with a copy of a value:</p>

<p>for example:</p>

<ul>
<li><code>void f(const T v)</code> instead of <code>void f(T v) // v does not need to be changed</code></li>
<li><code>if (const int err = f()) {/*...*/}</code>  instead of <code>if (int err = f()) {/*...*/}</code></li>
<li>or even <code>void f() {const T* const v = p; /*...*/}</code> instead of <code>void f() {const T* v = p; /*...*/}</code></li>
</ul>

<p>Is it just a matter of style? What does the C++11 standard use in its examples? Could not <code>const</code> be an hint for the compiler to store the variables in some special read-only memory (in some implementations)?</p>
