我想每個人都有經驗,類似下面的代碼工作:如何使用重載函數作爲函數模板的參數?
void fun(Type1&);
void fun(Type2&);
vector<Type1> vec;
for_each(vec.begin(), vec.end(), fun);
當然不會編譯,因爲目前還不清楚其功能是傳遞。什麼是您常用的解決方案?
我知道這將工作:
for_each(vec.begin(), vec.end(), (void(*)(Type1&))fun);
但是,任何更好的想法?
那麼......它仍然是類型鑄造。 其實我在另一個網站上看到這個問題。除了類型鑄造,我沒有提出一個好的解決方案。所以我想看看是否有真正的優雅方法來做到這一點。 但是,在這種情況下,我總是喜歡函數對象或lambda expr。 :) – hpsMouse 2010-06-16 04:33:11