title: C++11 "In class initialization" feature is not working for unions
body: <p>Minimal code example:</p>
  
  <pre><code>struct B { 
    union U {
      struct S {} s;
      int i = 100;
    }
    u;  
  };
  </code></pre>
  
  <p>Now if we declare a <code>B obj;</code> then the <code>obj.u.i</code> is assigned a garbage value instead of <code>100</code>.   See the <a href="http://ideone.com/0213tb" rel="nofollow">demo here</a>. (The garbage value differs based on optimization flags etc.).</p>
  
  <p>Is the "In class initialization" feature supposed to work with unions.</p>
  
  <ul>
  <li>If yes, then what is the correct syntax? Or is this a g++ bug?</li>
  <li>If not then what <code>int i = 100;</code> does?</li>
  </ul>