Ошибка C++: нет соответствующей функции-члена для вызова «поставить в очередь» Futures.emplace_back(TP.enqueue(sum_plus_C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка C++: нет соответствующей функции-члена для вызова «поставить в очередь» Futures.emplace_back(TP.enqueue(sum_plus_

Сообщение Anonymous »

Добрый вечер,
Я пытаюсь распараллелить код, который суммирует плюс один для всех элементов вектора M, с помощью ThreadPool (пул стандартен и реализован в книге Parallel Концепции программирования и практика). Поэтому я определил функцию sum_plus_one(x,M), которая принимает в качестве аргументов x: положение вектора и вектор M. Код следующий:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[]) {

// define a Thread Pool with 8 Workers
ThreadPool TP(5);

auto sum_plus_one = [](const uint64_t x, const std::vector &M) {
return M[x]+1;
};

uint64_t N = 10;   // dimension of the vector

// allocate the vector
std::vector M(N);
std::vector futures;

// init function
auto init=[&]() {
for(uint64_t i = 0; i< N; ++i) {
M[i] = 1;
}
};

init();

// enqueue the tasks in a linear fashion
for (uint64_t x = 0; x < N; ++x) {
futures.emplace_back(TP.enqueue(sum_plus_one, x, &M));
}

// wait for the results
for (auto& future : futures)
std::cout  std::future {
Я подхожу к такого рода вещам как новичок, и мне немного сложно найти решение. Похоже, что с указателями все в порядке, и эта очередь не может найти функцию, которая суммирует все элементы до одного.


Подробнее здесь: https://stackoverflow.com/questions/782 ... mplace-bac
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка компиляции C ++: 'std :: vector' не имеет члена "Emplace" в функции шаблона
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Ошибка компиляции C ++: 'std :: vector' не имеет члена "Emplace" в функции шаблона
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как текущая очередь, очередь отправки и целевая очередь взаимодействуют друг с другом в GCD?
    Anonymous » » в форуме IOS
    0 Ответы
    103 Просмотры
    Последнее сообщение Anonymous
  • Я получил ошибку времени выполнения C Plus Plus для начинающих при написании простой программы [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    97 Просмотры
    Последнее сообщение Anonymous
  • Избегание python sum sum по умолчанию
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»