Sdílet prostřednictvím


Chyba kompilátoru C3058

'symbol' : symbol není deklarován jako "threadprivate", než se použije v klauzuli 'copyin'.

Poznámky

Před použití v klauzuli copyin musí být nejprve deklarován symbol threadprivate.

Example

Následující příklad vygeneruje C3058:

// C3058.cpp
// compile with: /openmp
int x, y, z;
#pragma omp threadprivate(x, z)

void test() {
   #pragma omp parallel copyin(x, y)   // C3058
   {
   }
}

Možné řešení:

// C3058b.cpp
// compile with: /openmp /LD
int x, y, z;
#pragma omp threadprivate(x, y)

void test() {
   #pragma omp parallel copyin(x, y)
   {
   }
}