Freigeben über


Compilerfehler C3047

Vor einem strukturierten Block in einem sections-Bereich von OpenMP muss sich "#pragma omp section" befinden.

Jeglicher Code in einem Codeblock, der durch eine sections -Direktive eingeführt wird, muss sich in einem Codeblock befinden, der durch eine section -Direktive eingeführt wird.

Dieser Fehler ist in Visual Studio 2022 und höheren Versionen veraltet.

Im folgenden Beispiel wird C3047 generiert:

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

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

   #pragma omp parallel
   {
      ++n2;

      #pragma omp sections
      {

         #pragma omp section
         {
            ++n3;
         }

         ++n2;   // C3047 not enclosed in #pragma omp section
      }
   }
}