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()>>