假设您有 2 个免费功能:
void do_something(dog d);
void do_something(cat c);
不要说您想将这些函数传递给模板函数:
template <typename DoSomethingFunc>
void do_something_template(DoSomethingFunc func);
以避免重载解析冲突的方式调用 do_something_template
的首选方法是什么?会不会是类型转换?
最佳答案
您可以强制转换或使用局部函数指针变量。
void (*p)(dog) = do_something;
do_something_template(p);
do_something_template(static_cast<void(*)(cat)>(do_something));
关于c++ - 如何转换重载的自由函数来解决重载冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942299/