Я не знаю, о какой библиотеке вы говорите, но похоже, что эта требует итераторов:
Concurrency::parallel_for_each(start_iterator, end_iterator, function_object);
И, вероятно, имеет тот же эффект, что и этот (хотя и не обязательно в том же порядке):
for(sometype i = start_iterator; i != end_iterator; ++i) {
function_object(*i);
}
Например:
void do_stuff(int x) { /* ... */ }
vector<int> things;
// presumably calls do_stuff() for each thing in things
Concurrency::parallel_for_each(things.begin(), things.end(), do_stuff);
Другой принимает значения, поэтому, скорее всего, он имеет такой же эффект (но, опять же, без гарантированного порядка):
for(sometype i = start_value; i != end_value; ++i) {
function_object(i);
}
Попробуйте запустить это:
void print_value(int value) {
cout << value << endl;
}
int main() {
// My guess is that this will print 0 ... 9 (not necessarily in order)
Concurrency::parallel_for(0, 10, print_value);
return 0;
}
РЕДАКТИРОВАТЬ: Вы можете найти подтверждение этого поведения в Ссылки параллельного алгоритма .