¿Por qué no hay una especialización std :: shared_ptr <T []>?

El estándar proporciona una especialización de plantilla destd::unique_ptr que llama correctamente adelete[] de su destructor:

void func()
{
   std::unique_ptr< int[] > arr(new int[10]);

   .......
}

Constd::shared_ptr esta especialización no está disponible, por lo que es necesario proporcionar un eliminador que llame correctamente adelete[]:

void func()
{
    // Usage
    shared_ptr array (new double [256], [](double* arr) { delete [] arr; } ); 

    ..............
}

¿Es esto simplemente un descuido? (de la misma manera que hay unastd::copy_if) o hay alguna razón?

Respuestas a la pregunta(2)

Su respuesta a la pregunta