Erreur du compilateur C3037
'var' : la variable de la clause 'reduction' doit être partagée dans un contexte englobant
Une variable spécifiée dans une clause reduction ne peut pas être privée pour chaque thread dans le contexte.
L’exemple suivant génère l’erreur C3037 :
// C3037.cpp
// compile with: /openmp /c
int g_i;
int main() {
int i;
#pragma omp parallel private(g_i)
// try the following line instead
// #pragma omp parallel
{
#pragma omp for reduction(+:g_i) // C3037
for (i = 0 ; i < 10 ; ++i) {
g_i += i;
}
}
}