title: c++17: inner class default member initializer ignored in static inline varilables
body: <p>Compiling it using <code>clang -std=c++17</code>, and the error msg is <code>default member initializer for '_x' needed within definition of enclosing class 'A' outside of member functions</code>.
  I tried it with gcc, and got the same error msg.</p>
  
  <p>It's not obvious to me why it's disallowed, and it seems that once I move the inner struct outside the enclosing class (move B out of A), it compiles fine.</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  class A {
  struct B {
    size_t _x = 0;
  };
    private:
      static inline B b = {};
  };
  
  int main(void) {
    return 0;
  }
  </code></pre>