title: What is the reason for not being able to deduce array size from initializer-string in member variable?
body: <p>Consider the code:</p>
  
  <pre><code>struct Foo
  {
      const char str[] = "test";
  };
  
  int main()
  {
      Foo foo;
  }
  </code></pre>
  
  <p>It fails to compile with both g++ and clang++, spitting out essentially</p>
  
  <blockquote>
    <blockquote>
      <p><code>error: array bound cannot be deduced from an in-class initializer</code></p>
    </blockquote>
  </blockquote>
  
  <p>I understand that this is what the standard probably says, but is there any particular good reason why? Since we have a string literal it seems that the compiler should be able to deduce the size without any problem, similarly to the case when you simply declare an out-of-class <code>const</code> C-like null terminated string.</p>