操作が完了した(または失敗した)ケースのコールバックパラメータを追加していますか?例:操作完了コールバックプログラミングの実施
ここtemplate <typename F>
void load(::std::string const& path, F&& f)
{
// after a long load
::std::invoke(f, path);
}
、f
は、別のスレッドのコンテキストで呼び出されるかもしれません。私の質問は、プログラム内に1発の信号/スロットのペアを持つことが価値があるかどうかを熟考することから来ています。つまり、1回だけ呼び出されるスロットです。それ以外の場合は、接続して信号を切断する必要がありますが、これは面倒であると考えられます。その根拠は、ブール値などの戻り値では結果を待つ必要があるのに対して、コールバックでは必要ないということです。
構文が奇妙に思えます。 Fさんは何をすべきか?どうして 'std :: function'? –
':: std :: invoke'のような呼び出し可能なオブジェクトは、 – user1095108
と表示されます。オブザーバパターンを使用するとメンテナンス性が向上すると思います。 – adrianN