我有以下代码:
void f(){
.....
std::vector<PrepareLogFileThread> v;
for(int i = 0; i < list.length(); ++i){
PrepareLogFileThread a(
list[i],
LOG_TEMPLATE);
a.start();
v.push_back( a );
}
....
}
类PrepareLogFileThread
继承自使用的Thread
类pthread
(我们使用 c++98 标准....,我可以使用auto_ptr
)。
这里的问题是Thread
' 的复制构造函数是私有的,因此不会弄乱执行或其他东西(我不是这个类的作者)。
这里的想法是我创建我的PrepareLogFileThread
对象push_back
,v
启动它们,然后它们都在f
返回之前完成。
PrepareLogFileThread
有析构函数调用,pthread_join
以便它在那里完成。
但我不能,因为我复制a
符合push_back
.
Thread
如果没有 c++11 和更改的复制构造函数,我怎么能做到这一点?
我正在使用 gcc 4.4.6,我可以使用auto_ptr
.