Programmer avec Grand Central Dispatch
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:
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...