
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@singnet.com.sg> 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>();
}
}