Compartir a través de


Error del compilador C3039

'var': la variable de índice de la instrucción 'for' de OpenMP no puede ser una variable de reducción

Una variable de índice es implícitamente privada, por lo que no se puede usar la variable en una cláusula reduction en la directiva parallel envolvente.

Ejemplo

El ejemplo siguiente genera la advertencia C3039:

// C3039.cpp
// compile with: /openmp /c
int g_i;

int main() {
   int i;

   #pragma omp parallel reduction(+: i)
   {
      #pragma omp for
      for (i = 0; i < 10; ++i)   // C3039
         g_i += i;
   }
}