Erreur du compilateur C3053
'symbole' : 'threadprivate' n’est valide que pour les éléments de données global ou static
Les symboles passés à threadprivate doivent être de type global ou static.
L’exemple suivant génère l’erreur 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;
}
}
Résolution possible :
// C3053b.cpp
// compile with: /openmp /LD
int x, y;
#pragma omp threadprivate(x, y)
void Test() {
#pragma omp parallel copyin(x, y)
{
x = y;
}
}