Erreur du compilateur C3031
'variable' : la variable de la clause 'reduction' doit avoir un type arithmétique scalaire
Une variable du mauvais type a été passée à une clause reduction.
L’exemple suivant génère l’erreur C3031 :
// C3031.cpp
// compile with: /openmp /link vcomps.lib
#include <stdio.h>
#include "omp.h"
typedef struct {
int n;
} Incomplete;
extern Incomplete inc;
int i = 9;
int main() {
#pragma omp parallel reduction(+: inc) // C3031
;
#pragma omp parallel reduction(+: i) // OK
;
}