title: Why are span's array and std::array constructors different from its container constructors
body: <p>I have been playing around with the latest specification for <code>std::span</code> using the clang trunk and libc++ on Godbolt and find some of the constructors confusing.</p>
  
  <p>In particular I find the constructors from a plain old array and and a <code>std::array</code> to be different from other containers.</p>
  
  <p>For example the following code appears to compile:</p>
  
  <pre><code>std::vector&lt;int*&gt; v = {nullptr, nullptr};
  std::span&lt;const int* const&gt; s{v};
  </code></pre>
  
  <p>However this does not:</p>
  
  <pre><code>std::array&lt;int*, 2&gt; a = {nullptr, nullptr}; 
  std::span&lt;const int* const&gt; s{a};
  </code></pre>
  
  <p>This seems to be in keeping with <a href="https://en.cppreference.com/w/cpp/container/span/span" rel="noreferrer">the way the constructors are described on cppreference.com</a>, I am just struggling to understand why this is the case. Can anybody shed any light?</p>