为什么会有这样的代码:
boost::bind (SomeFunc<float>, function arguments go here);
产生这个错误:
no matching function for call to bind(<unresolved overloaded function type>
谢谢
可能是您的函数SomeFunc<float>
重载,在这种情况下boost::bind
无法处理。您必须实施手动解决方案,请参阅此处了解更多详细信息:
如果不明确,您需要使用 astatic_cast
告诉编译器选择哪个重载,例如:
#include <boost/bind.hpp>
void foo(int) {}
void foo(double) {}
int main() {
boost::bind(static_cast<void(*)(int)>(&foo), _1);
}
有时“未解决的重载函数类型”可能意味着“没有一个重载是可行的”,在这种情况下,您需要弄清楚为什么它不能使用任何重载并修复它。