コンパイラ エラー C3059
'var' : 'threadprivate' シンボルは 'clause' 句の中で使用することはできません
threadprivate シンボルが句の中で使用されました。
次の例では C3059 が生成されます。
// C3059.cpp
// compile with: /openmp
#include "omp.h"
int x, y;
#pragma omp threadprivate(x, y)
int main() {
#pragma omp parallel private(x, y) // C3059
{
x = y;
}
}
考えられる解決方法:
// C3059b.cpp
// compile with: /openmp
#include "omp.h"
int x = 0, y = 0;
int main() {
#pragma omp parallel firstprivate(y) private(x)
{
x = y;
}
}