Поделиться через


Ошибка компилятора C3034

Директиву OpenMP "директива1" нельзя вложить непосредственно в директиву "директива2"

Некоторые директивы не могут быть вложенными. Чтобы устранить эту ошибку, можно объединить операторы обеих директив в блок одной директивы или построить последовательные директивы.

Следующий пример приводит к возникновению ошибки C3034:

// C3034.cpp
// compile with: /openmp /link vcomps.lib
int main() {

   #pragma omp single
   {
      #pragma omp single   // C3034
      {
      ;
      }
   }

   // Two consecutive single clauses are OK.
   #pragma omp single
   {
   }

   #pragma omp single
   {
   }
}