編譯器錯誤 C3053
'symbol': 'threadprivate' 只對全域或靜態資料項目有效
傳遞至 threadprivate 的符號必須是全域或靜態的。
下列範例會產生 C3053:
// C3053.cpp
// compile with: /openmp
void Test() {
int x, y;
#pragma omp threadprivate(x, y) // C3053
#pragma omp parallel copyin(x, y)
{
x = y;
}
}
可能的解決方式:
// C3053b.cpp
// compile with: /openmp /LD
int x, y;
#pragma omp threadprivate(x, y)
void Test() {
#pragma omp parallel copyin(x, y)
{
x = y;
}
}