Re: constructing and initializing a scoped_array
Dennis Jones wrote:
I have some old code that I am refactoring to use smart pointers and
have run into a small problem. My original code looks something like
this:
class WorkerThread
{
std::map<int, Handler> &HandlerMap;
public:
WorkerThread( std::map<int, Handler> &AHandlerMap )
: HandlerMap( AHandlerMap ) {}
};
WorkerThread *WorkerThreads[MAXTHREADS];
for ( int i=0; i<MAXTHREADS; i++ )
{
WorkerThreads[i] = new WorkerThread( TheHandlerMap );
}
And I think I'd like to change it to use a scoped_array:
boost::scoped_array< WorkerThread > WorkerThreads;
WorkerThreads( new WorkerThread[/*...*/] )
Unfoortunately, the WorkerThread class does not have a default
constructor, and as such, the compiler does not allow me to cosntruct
a scoped_array. So maybe a scoped_array isn't the way to go, but it
seemed like most obvious choice. What would be an appropriate
solution?
I have no idea what 'scoped_array' is (it's not part of the Standard
Library, AFAICT), but can you tell me what's inaproppriate about, say,
'std::vector'?
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask