title: Why isn't there a std::shared_ptr<T[]> specialisation?
body: <p>The standard provides a template specialization of <code>std::unique_ptr</code> which correctly calls the <code>delete[]</code> from its destructor:</p>
  
  <pre><code>void func()
  {
     std::unique_ptr&lt; int[] &gt; arr(new int[10]);
  
     .......
  }
  </code></pre>
  
  <p>With <code>std::shared_ptr</code> this specialisation is not available, so it is necessary to
  to provide a deleter which correctly calls <code>delete[]</code>:</p>
  
  <pre><code>void func()
  {
      // Usage
      shared_ptr array (new double [256], [](double* arr) { delete [] arr; } ); 
  
      ..............
  }
  </code></pre>
  
  <p>Is this simply an oversight? (in the same way that there is an <code>std::copy_if</code>) or is there a reason?</p>