2011-09-21 28 views
0

我们可以在openmp任务编译指令的firstprivate子句中指定一个std :: vector对象吗?OpenMP平行部分firstprivate中允许的非POD数据类型?

是可以做一个矢量对象firstprivate?

它编译和运行正确......它始终是线程安全的?

+1

你尝试了吗? –

+0

请使用标题来总结您的问题和正文以包含它的内容。一个完整的,最小的示例程序将是最好的。 – Flexo

回答

1

是的,你可以

  1. 的FIRSTPRIVATE变量初始化一次,每
  2. 的FIRSTPRIVATE对象是通过调用其与变量的主线程的副本拷贝构造函数作为它的参数构建线程

所以基本上只要

  • 复制构造函数和该类signment运营商都可以访问
  • 他们提供深拷贝(值)的语义

注意的STL容器满足这些标准,但你可以做的容器改变语义(非共享)指针元素等

你去好

相关问题