title: Why we can use the declared variable in its constructor in C++
body: <p>I recently ran into some weird bugs due to this kind of code.</p>
  
  <pre><code>vector&lt;int&gt; a(a);
  </code></pre>
  
  <p>Why the code above is accepted? When is this necessary? 
  And how to ask the compiler to forbid this kind of usage?
  Thank you.</p>