Boost logo

Boost Users :

Subject: Re: [Boost-users] how to create smart pointer array?
From: Nathan Crookston (nathan.crookston_at_[hidden])
Date: 2013-01-30 13:59:23


young wrote:

> What is wrong with:
>
> boost::scoped_ptr<byte> buff[10];
> for(int i=0; i<10; i++)
> {
> int size = 2*i + 100;
> buff[i] = boost::scoped_ptr<byte>(new byte[size]);
> }
> ...
>

I agree with what Igor wrote. You could also use scoped array and change
your code thus:

#include <boost/scoped_array.hpp>
typedef unsigned char byte;
int main()
{
  boost::scoped_array<byte> buff[10];
  for(int i=0; i<10; i++)
  {
    int size = 2*i + 100;
    buff[i].reset(new byte[size]);
  }
}

HTH,
Nate

P.S. std::unique_ptr<byte[]> could also fit your needs, if that's available
with your compiler.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net