我必须使用仿函数Runner
在c ++ 11中运行线程class Runner {
public:
Runner(int){create toData on heap;}
~Runner(){delete toData;}
void operator()()const{
loop();
}
private:
pointer* toData;
};
当我尝试运行类似
的线程时Runner temp(1);
thread(temp);
或
thread(move(temp));
析构函数被调用并删除数据并获得分段错误。 怎么避免这个?
答案 0 :(得分:4)
您是否编写了正确的副本或移动复制构造函数和运算符?