Since C++17 supports shared_ptr of array, does this mean that an explicit deleter for T[] is no longer required in both ctor and reset? : <p>When create shared_ptr using a separated allocation, an explicit delete function must be provided in C++14 ctor and reset member function.</p>

<pre><code>using std::string;
using std::shared_ptr;
using std::default_delete;
int arr_size{};
...


auto string_arr_sptr_cpp14 = 
         shared_ptr&lt;string[]&gt;(new string[arr_size], default_delete&lt;string[]&gt;() );
string_arr_sptr_cpp14.reset(new string[arr_size], default_delete&lt;string[]&gt;() );
// define an explicit deleter, 
// or otherwise, "delete ptr;" will internally be used incorrectly!
</code></pre>

<p>By supporting shared_ptr of array feature in C++17, would those be no longer required in both ctor and reset?</p>

<pre><code>auto string_arr_sptr_cpp17 = shared_ptr&lt;string[]&gt;(new string[arr_size]);
string_arr_sptr_cpp14.reset(new string[arr_size]);
// deduced delete function calls "delete[] ptr;" correctly now?
</code></pre>
