Udostępnij za pomocą


Błąd kompilatora C3030

"var" : zmienna w klauzuli "reduction" /dyrektywa nie może mieć typu odwołania

Uwagi

Parametry wartości można przekazywać tylko do określonych klauzul, takich jak klauzula redukcji.

Example

Poniższy przykład generuje kod C3030:

// C3030.cpp
// compile with: /openmp /link vcomps.lib
#include "omp.h"

void test(int &r) {
   #pragma omp parallel reduction(+ : r)   // C3030
      ;
}

void test2(int r) {
   #pragma omp parallel reduction(+ : r)   // OK
      ;
}

int main(int argc, char** argv) {
   int& r = *((int*)argv);
   int s = *((int*)argv);

   #pragma omp parallel reduction(+ : r)   // C3030
      ;

   #pragma omp parallel reduction(+ : s)   // OK
      ;
}