编译器错误 C3042

“copyprivate”和“nowait”子句不能同时出现在 OpenMP“directive”指令中

Copyprivatenowait 子句在指定的指令上彼此排斥。 若要修复此错误,请删除 copyprivatenowait 子句之一或两者一起删除。

以下示例生成 C3042:

// C3042.cpp
// compile with: /openmp /c
#include <stdio.h>
#include "omp.h"

double d;

int main() {
    #pragma omp parallel private(d)
   {
      #pragma omp single copyprivate(d) nowait   // C3042
      {
      }
   }
}