title: Why can const members be modified in a constructor?
body: <p>I'm curious why const members can be modified in the constructor.</p>
  
  <p>Is there any standard rule in initialization that overrides the "const-ness" of a member?</p>
  
  <pre><code>struct Bar {
      const int b = 5; // default member initialization
      Bar(int c):b(c) {}
  };
  
  Bar *b = new Bar(2); // Problem: Bar::b is modified to 2
                       // was expecting it to be an error
  </code></pre>
  
  <p>Any ideas?</p>