编译器错误 C3040

“var”:“reduction”子句中的变量类型与 reduction 运算符“operator”不兼容

reduction 子句中的变量不能与 reduction 运算符一起使用。

下面的示例生成 C3040:

// C3040.cpp
// compile with: /openmp /c
#include "omp.h"
double d;

int main() {
   #pragma omp parallel reduction(&:d)   // C3040
      ;

   #pragma omp parallel reduction(-:d)  // OK
      ;
}