1
我有類似下面的情況:類的成員變量和OpenMP
//class somemethod contains the member variables(declaration) val1 and val2,
//and is defined in somemethod.h.
#include <somemethod.h>
void abovefunction(x)
{
//code that could be made parallel if val1 and val2 is declared private()
}
//abovefunction() is in somemethod.cpp, where the methods of class somemethod
//are described
功能後來被像obj.abovefunction(x)的一些對象調用。由於val1和val2是在someththod.h中聲明/初始化的,因此我不能將它們用作private(val1,val2),而像private(this-> val1,this-> val2)也是不可能的。任何人都可以讓我知道在這種情況下使用OpenMP並行化的最佳方式,其中變量是類的一部分,並且聲明不在應用OpenMP pragmas的代碼塊的直接範圍內?
我也問過關於OpenMP論壇同一個問題 - http://openmp.org/forum/viewtopic.php?f=3&t=886#p3516
感謝,
薩揚
我將上面的函數移到somemethod.h,以便我可以訪問這些變量。謝謝。 – Sayan 2010-06-29 15:25:39
感謝OpenMP.org論壇的成員提醒我靜態成員可以聲明爲threadprivate。 – Sayan 2010-06-30 20:17:33