Udostępnij za pomocą


Błąd kompilatora C3012

"wewnętrzny" : funkcja wewnętrzna nie jest dozwolona bezpośrednio w regionie równoległym

Uwagi

Funkcja wewnętrzna kompilatora nie jest dozwolona omp parallel w regionie. Aby rozwiązać ten problem, przenieś funkcje wewnętrzne z regionu lub zastąp je odpowiednikami niewewnętrznych.

Przykład

Poniższy przykład generuje kod C3012 i przedstawia jeden ze sposobów jego naprawy:

// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif

int main()
{
   #pragma omp parallel
   {
      _ReturnAddress();   // C3012
   }
   _ReturnAddress();      // OK
}