Erreur du compilateur C3047

Le bloc structuré d'une région 'sections' OpenMP doit être précédé de '#pragma omp section'

Tout code contenu dans un bloc de code introduit par une directive sections doit se trouver dans un bloc de code introduit par une directive section .

Cette erreur est obsolète dans Visual Studio 2022 et versions ultérieures.

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

// 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
      }
   }
}