编译器错误 C3047

OpenMP“sections”区域中的结构化块的前面必须是“#pragma omp section”

sections 指令所引入代码块中的任何代码必须位于 section 指令引入的代码块中。

此错误在 Visual Studio 2022 及更高版本中已过时。

下面的示例生成 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
      }
   }
}