Erro do compilador C3055
'symbol' : o símbolo não pode ser referenciado antes de ser usado na diretiva 'threadprivate'
Um símbolo foi referenciado e usado em uma cláusula threadprivate, o que não é permitido.
A amostra a seguir gera o erro C3055:
// C3055.cpp
// compile with: /openmp
int x, y;
int z = x;
#pragma omp threadprivate(x, y) // C3055
void test() {
#pragma omp parallel copyin(x, y)
{
x = y;
}
}
Resolução possível:
// C3055b.cpp
// compile with: /openmp /LD
int x, y, z;
#pragma omp threadprivate(x, y)
void test() {
#pragma omp parallel copyin(x, y)
{
x = y;
}
}