컴파일러 오류 C3056
'symbol': 기호가 'threadprivate' 지시문과 같은 범위에 속하지 않습니다.
threadprivate 절에서 사용되는 기호는 threadprivate
절과 동일한 범위에 있어야 합니다.
다음 샘플에서는 C3056을 생성합니다.
// C3056.cpp
// compile with: /openmp
int x, y;
void test() {
#pragma omp threadprivate(x, y) // C3056
#pragma omp parallel copyin(x, y)
{
x = y;
}
}
해결 방법:
// C3056b.cpp
// compile with: /openmp /LD
int x, y;
#pragma omp threadprivate(x, y)
void test() {
#pragma omp parallel copyin(x, y)
{
x = y;
}
}