Bonjour,

Je suis en train de développer une application sous grand central dispatch et j'ai un soucis dans la gestion des variables locales de blocks:

Je cherche à créer des variables locales dans un block. Les variables locales sont de type int ou object (c++), types déclarés avant le bloc.
Lorsque les variables sont déclarées dans le bloc, le compilateur retourne l'erreur suivante:
"error: 'int genome_population::month' is not a static member of 'class genome_population'"

Pourquoi xcode n'accepte pas la création de variable dans le block ?

Si l'un d'entre vous sait comment regler le soucis, merci pour votre aide !

Voici pour info un bout du code:
La fonction dans laquelle le parallelisme est utilisé est membre de la classe "Genome Population", classe définie avant dans le programme.

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
22
int genome_population::compute_all_fitnesses (security_universe *market, int month_1, int month_2)
{
   int
      month,
      n;
 
   dispatch_queue_t
      queue;
 
   if ((month_1 <0)||(month_2 > experiment_configuration->number_months_history)||(month_2 < month_1))
   {
      printf("genome_population::compute_all_fitnesses error: month_1 %i or month_2 %i out of range\n", month_1, month_2);
      return (-1);
   }
 
   maximum_fitness = -1/ALMOST_ZERO;
 
   queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
 
   dispatch_apply(size_of_population, queue, ^(size_t n)
   {
      int month;
etc...