title: How can class fields be initialized?
body: <p>A bit of a basic question, but I'm having difficulty tracking down a definitive answer.</p>
  
  <p>Are initializer lists the <em>only</em> way to initialize class fields in C++, apart from assignment in methods?</p>
  
  <p>In case I'm using the wrong terminology, here's what I mean:</p>
  
  <pre><code>class Test
  {
  public:
      Test(): MyField(47) { }  // acceptable
      int MyField;
  };
  
  class Test
  {
  public:
      int MyField = 47; // invalid: only static const integral data members allowed
  };
  </code></pre>
  
  <p><strong>EDIT</strong>: in particular, is there a nice way to initialize a struct field with a struct initializer? For example:</p>
  
  <pre><code>struct MyStruct { int Number, const char* Text };
  
  MyStruct struct1 = {};  // acceptable: zeroed
  MyStruct struct2 = { 47, "Blah" } // acceptable
  
  class MyClass
  {
      MyStruct struct3 = ???  // not acceptable
  };
  </code></pre>