Erreur du compilateur C3026
'clause' : l’expression constante doit être positive
Une valeur entière a été passée à une clause, mais il ne s’agissait pas d’un nombre positif. Le nombre doit être positif.
Exemple
L’exemple suivant génère l’erreur C3026 :
// C3026.cpp
// compile with: /openmp /link vcomps.lib
#include <stdio.h>
#include "omp.h"
int main()
{
int i;
const int i1 = 0;
#pragma omp parallel for num_threads(i1) // C3026
for (i = 1; i <= 2; ++i)
printf_s("Hello World - thread %d - iteration %d\n",
omp_get_thread_num(), i);
#pragma omp parallel for num_threads(i1 + 1) // OK
for (i = 1; i <= 2; ++i)
printf_s("Hello World - thread %d - iteration %d\n",
omp_get_thread_num(), i);
}