Boost logo

Boost Users :

From: James Emerton (ephelon_at_[hidden])
Date: 2007-08-31 11:55:59


Do you really need to have a shared_array containing shared_ptrs?

You would probably be better off with something like:

std::vector< std::vector< boost::shared_ptr<Character> > > characterGrid;
characterGrid.resize( _info.l );
for( int i = 0; i < _info.l; ++i )
  characterGrid.resize( _info.w );

James

On 8/30/07, Jeffrey Jiang <gamedboy_at_[hidden]> wrote:

> This is a sparse array, most of the pointers will be set to 0. As I could
> not find much information about shared_array on line, I would like to check
> is there any issue with this implementation.
>
> boost::shared_array<boost::shared_array<boost::shared_ptr<Character>>>
> characterGrid(new
> boost::shared_array<boost::shared_ptr<Character>>[_info._l ]);
>
> for( int i=0;i< _info._l; i++) {
>
> characterGrid[i] = boost::shared_array<boost::shared_ptr<Character>>(new
> boost::shared_ptr<Character>[_info._w]);
>
> for( int j=0; j< _info._w; j++) {
>
> //is it alright for me to use an empty shared_ptr in this context to
> init the array?
>
> characterGrid[i][j] = boost::shared_ptr<Character>();
>
> }
>
> }
>


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