Why does C++ require a user-provided default constructor to default-construct a const object?
<p>The C++ standard (section 8.5) says:</p>

<blockquote>
  <p>If a program calls for the default initialization of an object of a const-qualified type T, T shall be a class type with a user-provided default constructor.</p>
</blockquote>

<p>Why? I can't think of any reason why a user-provided constructor is required in this case.</p>

<pre><code>struct B{
  B():x(42){}
  int doSomeStuff() const{return x;}
  int x;
};

struct A{
  A(){}//other than "because the standard says so", why is this line required?

  B b;//not required for this example, just to illustrate
      //how this situation isn't totally useless
};

int main(){
  const A a;
}
</code></pre>
