我想每个人都有经验,类似下面的代码工作:如何使用重载函数作为函数模板的参数?
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