0
我有一個功能,讓我們說同時接受拉姆達函數和函數指針作爲參數
void processSomething(Arg1 arg1, Function t){
...
t(someVariable);
}
我想以下兩個用途的工作:
processSomething(myArg1, [&](SomeVariable someVar){...});
void(*myFunc)(void) = &someFunc;
processSomething(myArg1, myFunc);
然而,我發現,當使用void(*myFunc)(void)
作爲參數聲明時,我不能使用lambda-way。 任何方式使兩種用法工作沒有兩個單獨的功能或過度複雜的使用包裝?
如果你看看例如[標準算法函數](http://en.cppreference.com/w/cpp/algorithm),您將看到所有采用「謂詞」的函數都會將其作爲模板類型。 –