-4
謝謝你檢查我的問題。我需要一個模板函數來像使用STL那樣使用可調用對象(如lambda,函數對象,綁定,函數指針和函數)作爲參數,但是我真的不知道該怎麼做,並且沒有資源在線。定義一個函數使用可調用對象作爲參數
具體來說,我想設計一個遍歷我的容器的函數,並且對於每個元素,它將調用可調用函數來像STL :: for_each()一樣操作元素。你能舉一個這樣的例子嗎?
非常感謝!
謝謝你檢查我的問題。我需要一個模板函數來像使用STL那樣使用可調用對象(如lambda,函數對象,綁定,函數指針和函數)作爲參數,但是我真的不知道該怎麼做,並且沒有資源在線。定義一個函數使用可調用對象作爲參數
具體來說,我想設計一個遍歷我的容器的函數,並且對於每個元素,它將調用可調用函數來像STL :: for_each()一樣操作元素。你能舉一個這樣的例子嗎?
非常感謝!
STL使用模板來做到這一點。事情是這樣的:
template<class CallableObjectType>
void do_stuff(/* other arguments */, CallableObjectType object)
{
// ...
object(arg1, arg2, arg3);
// ...
}
這就是說,不試圖強迫你的對象是可調用的,除非通過調用它。如果對象不可調用,那麼模板不能被實例化,因爲object(arg1, arg2, arg3)
是無效的,所以你會得到一個錯誤。如果對象是可調用的,那麼它的工作原理就是你期望的。
增加獲得幫助的機率。你應該嘗試編寫一個你想要做的事情的小例子。 – kfsone