Bonjour,
J'ai un message d'erreur concernant cette directive dans l'example simplifi� ci-dessous.
Le message est "r declared 'threadprivate' after first use"
Ca vient du fait que ma classe a un constructeur mais ca je n'y peut rien.
Cet operator est appel� dans une boucle parall�lis�e et qui merde parce va variable stratic 'r' est commune aux threads, d'ou la tentaative d'utilisation de la directive "threadprivate"
Je ne sais pas comment faire autrement.
Merci de vos suggestions
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class my_class { public : double x,y; my_class() { x=y=0; } }; my_class& my_class::operator*(const my_calss &p) { // déclaré en static parce que son constructeur prend trop de temps static my_class r; #pragma omp threadprivate(r) r.x=r.y=0.; // differents calculs return(r); }
Partager