title: Initializing a member array in constructor initializer
body: <pre><code>class C 
  {
  public:
   C() : arr({1,2,3}) //doesn't compile
  {}
      /*
      C() : arr{1,2,3} //doesn't compile either
  {}
      */
  private:
   int arr[3];
  };
  </code></pre>
  
  <p>I believe the reason is that arrays can be initialized only with <code>=</code> syntax, that is:</p>
  
  <pre><code>int arr[3] = {1,3,4};
  </code></pre>
  
  <h3>Questions</h3>
  
  <ol>
  <li>How can I do what I want to do (that
  is, <em>initialize</em> an array in a
  constructor (not assigning elements
  in the body)). Is it even possible?   </li>
  <li>Does the C++03 standard say anything special about initializing aggregates (including arrays) in ctor initializers? Or the invalidness of the above code is a corollary of some other rules?  </li>
  <li>Do C++0x initializer lists solve the problem?</li>
  </ol>
  
  <p><em><strong>P.S.</em></strong> Please do not mention vectors, boost::arrays, and their superiority to arrays, which I am well aware of.</p>