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


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

Директива #pragma omp parallel в настоящее время не поддерживается в универсальном классе или функции

Замечания

Дополнительные сведения см. в разделе "Универсальные " и "OpenMP".

Эта ошибка устарела в Visual Studio 2022 и более поздних версиях.

Пример

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

// C3054.cpp
// compile with: /openmp /clr /c
#include <omp.h>

ref struct MyBaseClass {
   // Delete the following 7 lines to resolve.
   generic <class ItemType>
   void Test(ItemType i) {   // C3054
      #pragma omp parallel num_threads(4)
      {
         int i = omp_get_thread_num();
      }
   }

   // OK
   void Test2() {
      #pragma omp parallel num_threads(4)
      {
         int i = omp_get_thread_num();
      }
   }
};