title: How to create std::array with initialization list without providing size directly
body: <p>How can I make <code>a3</code> compile?</p>
  
  <pre><code>int main()
  {
      int a1[] = { 1, 2, 3 };
      std::array&lt;int, 3&gt; a2 = { 1, 2, 3 };
      std::array&lt;int&gt; a3 = { 1, 2, 3 };
  }
  </code></pre>
  
  <p>It's very inconvenient, and brittle, to hard-code the size of the array when using an initialization list, especially long ones. Is there any work around? I hope so otherwise I'm disappointed because I hate C arrays and <code>std::array</code> is supposed to be their replacement.</p>