title: non-static data member initializers questions
body: <p>I've built MinGW from trunk-version GCC-4.7.0: <a href="http://code.google.com/p/mingw-builds/downloads/list" rel="noreferrer">http://code.google.com/p/mingw-builds/downloads/list</a></p>
  
  <p>In the description of changes of this version it is said that non-static data member initializers are implemented: <a href="http://gcc.gnu.org/gcc-4.7/changes.html" rel="noreferrer">http://gcc.gnu.org/gcc-4.7/changes.html</a></p>
  
  <p><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm" rel="noreferrer">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</a></p>
  
  <p>When I try to compile such an example:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  
  struct type {
     type()
        :i(33)
     {}
  
     int i;
     std::string s("string");
  };
  
  int main() {
     type t;
     std::cout &lt;&lt; t.i &lt;&lt; " : " &lt;&lt; t.s &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>I get a ton of errors, and this one is in the end:</p>
  
  <blockquote>
    <p>main.cpp:16:35: note: 'std::string (type::<em>)(int) {aka
    std::basic_string (type::</em>)(int)}' is not derived from 'const
    std::basic_string&lt;_CharT, _Traits, _Alloc>' main.cpp:16:35: note:
    could not resolve address from overloaded function 't.type::s'</p>
  </blockquote>
  
  <p>But according to the documentation, the code is correct.</p>