OMP для цикла без инициализации - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь запустить фрагмент кода с использованием openmp, но он выдает ошибку компиляции, поскольку в цикле for нет инициализации.Итератор class определен здесь .Я не могу понять, как я могу инициализировать внутри цикла for.

Я не эксперт в C ++, поэтому я был бы признателен за любую помощь.

ntHashIterator itr(seq, h, k);
#pragma omp parallel for  
for(; itr != itr.end(); ++itr){ 
   std::cout << (*itr)[0] << std::endl; 
}

1 Ответ

0 голосов
/ 26 июня 2018

OpenMP требует, чтобы циклы были в так называемой канонической форме цикла .Более того, он может работать с итераторами, но они должны быть типа с произвольным доступом .Это не похоже на ваш случай, так как ваш nHashIterator не поддерживает + и += операторов.См. Подробности в спецификациях OpenMP.

В любом случае, сложно сказать больше, поскольку вы не предоставляете достаточно подробностей, таких как компилятор и версия OpenMP, которую он поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...