2011-09-21 32 views
0

我們可以在openmp任務編譯指令的firstprivate子句中指定一個std :: vector對象嗎?OpenMP平行部分firstprivate中允許的非POD數據類型?

是可以做一個矢量對象firstprivate?

它編譯和運行正確......它始終是線程安全的?

+1

你嘗試了嗎? –

+0

請使用標題來總結您的問題和正文以包含它的內容。一個完整的,最小的示例程序將是最好的。 – Flexo

回答

1

是的,你可以

  1. 的FIRSTPRIVATE變量初始化一次,每
  2. 的FIRSTPRIVATE對象是通過調用其與變量的主線程的副本拷貝構造函數作爲它的參數構建線程

所以基本上只要

  • 複製構造函數和該類signment運營商都可以訪問
  • 他們提供深拷貝(值)的語義

注意的STL容器滿足這些標準,但你可以做的容器改變語義(非共享)指針元素等

你去好

相關問題