title: goto crosses initialization
body: <p>Let's say I have some c++ code:</p>
  <pre><code>if (error)
      goto exit;
  ... 
  // size_t i = 0; //error
  size_t i;
  i = 0;
  ...
  exit:
      ...
  </code></pre>
  <p>I understand we should not use <code>goto</code>, but still why does</p>
  <pre><code>size_t i;
  i = 0;
  </code></pre>
  <p>compile whereas <code>size_t i = 0;</code> doesn't?</p>
  <p>Why is such behavior enforced by the standard (mentioned by @SingerOfTheFall)?</p>