我有一个
的对象omp parallel
部分有没有办法可以自动为这个对象声明适当的复制语义?我的想法是
firstprivate
部分声明为omp parallel
,以便为每个帖子复制 这是明智的吗?有没有更好的办法?
编辑:复制构造函数如何检查omp_get_thread_num()
是否已更改并执行适当的指针或深层复制?
答案 0 :(得分:2)
我会使用shared_ptr来管理对象,并实现一个函数:
shared_ptr<T> deepCopy(const shared_ptr<T>& obj);
在请求时执行深层复制并返回另一个共享指针。然后,可以在并行区域内使用此函数,以在需要时实例化obj
的私有副本。