1
在操作完成(也失敗)的情況下是否添加了一個回調參數?例如:操作完成回調編程練習
template <typename F>
void load(::std::string const& path, F&& f)
{
// after a long load
::std::invoke(f, path);
}
這裏,f
可能在另一個線程的上下文中調用。我的問題來自於思考在程序中是否值得擁有單觸發信號/時隙對。也就是說,一個插槽,只會被調用一次。否則,我們可能需要連接,然後斷開一個可能被認爲是乏味的信號。基本原理是,對於一個返回值,比如一個bool值,我們需要等待結果,而對於回調,我們不需要。
語法對我來說似乎很奇怪。 F應該是什麼?爲什麼不'std :: function'? –
任何可調用的對象,作爲':: std :: invoke'顯示 – user1095108
我認爲使用觀察者模式會更好的可維護性。 – adrianN