4

Glib::Dispatcher の周りにラッパーを構築して、関数型をディスパッチャにディスパッチしようとしています。関数を Glib メインループに転送できる関数ディスパッチが必要です。

template<class Function, class ...Args>
std::future<typename std::result_of<Function(Args...)>::type>
dispatch(Function &&f, Args &&...args);

この関数は、f(args) からパッケージ化されたタスクを作成し、その将来を返します。

std::packaged_task<typename std::result_of<Function(Args...)>::type()> task(f(args...));
return task.get_future();

std::packaged_task<void()>Glib::Dispatcher に接続された関数がそれらを実行できるように、これらを 1 つの std::queue に入れるために、このタスク a から作成する必要があります。

私の質問は次のとおりです。最初のタスクからその将来に戻り、2番目のタスクをタイプのキューに入れることができるように、2つのステップでstd::packaged_task<R()>aから作成するにはどうすればよいですか?std::packaged_task<void()>std::queue<std::packaged_task<void()>>

4

1 に答える 1