Compartir a través de


Error del compilador C3037

'var': la variable de la cláusula 'reduction' se debe compartir en el contexto envolvente

Una variable especificada en una cláusula reduction no puede ser privada para cada subproceso del contexto.

El ejemplo siguiente genera la advertencia 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;
      }
   }
}