Описание тега packaged-task
NoneStd::packaged_task<> - это шаблон класса, представленный с функцией многопоточности C++ 11. Этот тег следует использовать для вопросов, касающихся шаблона класса C++ и его использования с многопоточностью C++ и сопрограммами. Также следует указать используемый стандарт C++ (C++11/14/17/20). Шаблон класса используется для обертывания вызываемой сущности (лямбда, функция и т. Д.) Для создания асинхронной задачи.
0
ответов
C++ Future with Arguments Error
Ниже приведен код, который я использую для запуска packaged_task. Однако, когда я пытаюсь скомпилировать, я получаю сообщение об ошибке: 'std::function<_Ret(CStore &, FileDetails &)>::function(std::function<_Ret(CStore &, FileDe…
23 апр '16 в 15:15
2
ответа
Что означает этот синтаксис, `шаблон класса <класс R, класс... Args> имя класса<R (Args...)>`
Я пытался больше о многопоточном программировании в C++, и у меня были трудности с пониманием std::promise поэтому я начал искать ответы на этом сайте, и вот, есть кто-то с тем же вопросом, что и я. Но чтение ответа еще больше смутило меня, так как …
02 дек '15 в 01:52
4
ответа
В чем разница между packaged_task и async
Работая с многопоточной моделью C++11, я заметил, что std::packaged_task<int(int,int)> task([](int a, int b) { return a + b; }); auto f = task.get_future(); task(2,3); std::cout << f.get() << '\n'; а также auto f = std::async(std::…
09 авг '13 в 09:34
1
ответ
Зачем нужен конструктор копирования для packaged_task в VS
class MoveOnlyOperation { public: MoveOnlyOperation() = default; MoveOnlyOperation(const MoveOnlyOperation&) = delete; MoveOnlyOperation(MoveOnlyOperation&&) = default; int operator()() { return 0; } }; Я хочу обернуть экземпляр объекта …
26 фев '18 в 19:21
1
ответ
C++: сборка асинхронно с packaged_task
Я пытаюсь реализовать асинхронную с помощью packaged_task. Я пытаюсь это с помощью шаблонной функции, bsync. bsync принимает 2 аргумента: функцию f и пакет параметров args и возвращает будущее, fut. Будущее имеет тип, возвращаемый f(args...). Т.е. в…
04 май '15 в 15:56
1
ответ
Добавление фиктивного конструктора копирования в std::packaged_task
Я пытаюсь обойти отсутствие в std::packaged_task конструктора копирования, чтобы я мог передать его в функцию std:: (которая будет только перемещена). Я унаследовал от std::packaged_task и добавил фиктивный конструктор копирования, который, я полага…
12 окт '16 в 10:17
1
ответ
Добавить std::packaged_task в существующий поток?
Есть ли стандартный способ добавить std::packaged_task в существующую тему? Перед запуском задачи должно произойти нетривиальное количество накладных расходов, поэтому я хочу сделать это один раз, а затем продолжить выполнение потока и ожидать выпол…
26 окт '18 в 18:57
1
ответ
Безопасно ли никогда не получать результат std::future из std::packaged_task?
Безопасно ли создавать std::future из std::packaged_task, который выполняется в отдельном потоке, но не всегда получает его результат? #include <future> #include <thread> class Result { Result() {} ~Result() {} }; void foo() { std::packa…
31 май '16 в 02:55
1
ответ
Почему мой поток вызывает функциональный объект, а не присваивает его возвращаемое значение будущему объекту моего packaged_task?
Я хочу узнать, как получить возвращаемое значение функции с помощью packaged_task. В приведенном ниже коде я создаю поток, который выполняет мою функцию DoTask. Затем я связываю эту функцию с packaged_task и заставляю ее ждать, пока я связываю ее с …
15 июл '16 в 13:06
1
ответ
std::packaged_task с помощью std::bind(func, this) внутри класса
Я подготовил небольшой фрагмент, изолирующий мою проблему здесь. Вот: #include <stdio.h> #include <future> #include <functional> class foo { public: foo(int a, int b) : m_a(a), m_b(b) {} int somefunc(int a, int b) { printf("foo w0w…
21 фев '15 в 23:02
1
ответ
Использование std::bind для захвата пакета параметров "по ходу"
Я пытаюсь реализовать std::async с нуля, и наткнулся на сбой с аргументами типа только для перемещения. Суть этого в том, что C++14 init-captures позволяет нам захватывать отдельные переменные "по ходу" или "при совершенной пересылке", но они не поз…
22 июл '15 в 07:00
1
ответ
Упаковка std::packaged_task внутри пользовательского класса
Я пытаюсь обернуть std::packaged_task в другой класс, чтобы использовать его вместе с планировщиком задач. На данный момент у меня все работает, кроме поддержки std:: future. Чтобы получить поддержку std:: future, я понял, что мне нужно использовать…
15 янв '13 в 20:20
1
ответ
Используйте функцию-член в std::packaged_task с std::thread (не std::async)
Я пытаюсь получить std:: future от std:: thread, и кажется, что единственный способ (?) Сделать это - использовать std::packaged_task. Ну, кроме того, функция, которую я хочу вызвать в std:: thread, является функцией-членом класса. Я мог бы найти эт…
24 окт '14 в 16:44
1
ответ
Идеальная пересылка и упакованный_задачник
Я пытаюсь обернуть packaged_task в универсальный класс, но не могу инициализировать его с помощью универсальной функции. Я заставил это работать для определенной, но я хочу, чтобы это было более абстрактным. Просто к сведению, если вы раскомментируе…
01 май '15 в 23:12
3
ответа
C++11 packaged_task, работающий со своим собственным потоком, нуждается в join(), чтобы получить будущее
Из книги C++11, которую я недавно получил, я пытаюсь построить пример на странице 123 (packaged_task 5.3.5.2), и после нескольких вещей, чтобы это работало с XCode, у меня есть пара вопросов: Во-первых, кажется, что существует требование передать ук…
30 ноя '13 в 22:25
0
ответов
C++ packaged_task зависает в параллельной оболочке
Я реализую параллельную оболочку, представленную Хербом Саттером, представленным в его докладе "C++ и после 2012 года". template <typename T> class ConcurrentWrapper { private: std::deque<std::unique_ptr<std::function<void()>>&g…
26 сен '16 в 16:38
2
ответа
Как мне создать packaged_task с параметрами?
Следуя этому превосходному учебнику по будущим, обещаниям и пакетным задачам, я дошел до того, что хотел подготовить свое собственное задание. #include <iostream> #include <future> using namespace std; int ackermann(int m, int n) { // mi…
25 сен '11 в 20:44
1
ответ
std::packaged_task действительно дорого?
Я удивлен результатами следующего кода, использующего gcc 4.7.2 на Opensuse Linux: #include <cmath> #include <chrono> #include <cstdlib> #include <vector> #include <chrono> #include <iostream> #include <future&…
05 окт '13 в 21:49
0
ответов
Добавление заполнителей std::bind к аргументам функции
Я использую класс Merge для инкапсуляции сортировки слиянием. Я хотел бы использовать пакетную задачу для многопоточности рекурсивных вызовов: void Merge::executeSort() { packaged_task<void(Merge)> mergeLeft(bind(Merge::executeSort, _1)); pack…
26 мар '12 в 15:23
1
ответ
C++: packaged_task через обещания
Я пытаюсь реализовать packaged_task как шаблонный класс, используя обещания. Моя ошибка компиляции говорит, что я ссылаюсь на удаленную функцию. Я подозреваю, что мне нужно реализовать семантику копирования и / или перемещения, но я не понимаю, как …
04 май '15 в 17:28