N3870: Extending make_shared to Support Arrays, Revision 1 -- Peter Dimov, Glen Fernandes
A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.
Document number: N3870
Date: 2014-01-14
Extending make_shared to Support Arrays, Revision 1
by Peter Dimov, Glen Fernandes
Excerpt:
This paper proposes adding array support to
make_shared
, via the syntaxmake_shared<T[]>
andmake_shared<T[N]>
.Changes in Revision 1: This revision of N3641 significantly narrows the scope of the proposal, based on feedback from Jeffrey Yasskin and Stephan T. Lavavej. It cuts down the number of
make_shared
overloads considerably, leaving only two use cases:— Value initialization, analogous to
new U[N]()
:template<class T> shared_ptr<T> make_shared(size_t N); // T is U[] template<class T> shared_ptr<T> make_shared(); // T is U[N]— Per-element initialization to a specified value, analogous to the
std::vector<U>(N, u)
constructor:template<class T> shared_ptr<T> make_shared(size_t N, const U& u); // T is U[] template<class T> shared_ptr<T> make_shared(const U& u); // T is U[N]