Partager via


Erreur du compilateur C3043

la directive 'critical' OpenMP ne peut pas être imbriquée dans une directive 'critical' du même nom

Une directive critical ne peut pas être imbriquée dans une directive critical du même nom.

L’exemple suivant génère l’erreur C3043 :

// C3043.cpp
// compile with: /openmp /c
#include "omp.h"

int main() {
   int n1 = 1, n2 = 2, n3 = 3;

   #pragma omp parallel
   {
      ++n2;

      #pragma omp critical(MyTest)
      {
         ++n2;

         #pragma omp critical(MyTest)   // C3043
         // try the following line instead
         // #pragma omp critical(MyTest2)
         {
            ++n3;
         }
      }
   }
}