Boost logo

Boost :

Subject: Re: [boost] make_shared_array
From: Nathan Crookston (nathan.crookston_at_[hidden])
Date: 2012-11-06 11:13:36

I see that a commit with the following syntax has occurred on trunk.
On Fri, Nov 2, 2012 at 6:20 PM, Peter Dimov <lists_at_[hidden]> wrote:
> shared_ptr<int[]> sp4a = make_shared<int[]>(number_of_ints);//4a:
> initialized to 0
> shared_ptr<int[]> sp4b = make_shared_noinit<int[]>(number_of_ints);//4b:
> uninitialized

I have one minor suggestion.

Given that the make_shared variant which produces shared_ptr<T[]> is
spelled make_shared<T[]>, I think it would be very confusing to have
the following not work:
#include <boost/make_shared.hpp>

int main()
  auto pInt = boost::make_shared<int[]>(500);
  return 0;

I would suggest that make_shared_array.hpp be included by
make_shared.hpp -- likewise for allocate_shared. Perhaps the array
header files should be placed in detail, though I think it's less
confusing to include make_shared_array.hpp and not have the non-array
make_shared functions.


Boost list run by bdawes at, gregod at, cpdaniel at, john at