2

为什么会有这样的代码:

boost::bind (SomeFunc<float>, function arguments go here);

产生这个错误:

no matching function for call to bind(<unresolved overloaded function type>

谢谢

4

2 回答 2

9

可能是您的函数SomeFunc<float>重载,在这种情况下boost::bind无法处理。您必须实施手动解决方案,请参阅此处了解更多详细信息:

于 2012-07-03T06:47:10.753 回答
3

如果不明确,您需要使用 astatic_cast告诉编译器选择哪个重载,例如:

#include <boost/bind.hpp>

void foo(int) {}
void foo(double) {}

int main() {
  boost::bind(static_cast<void(*)(int)>(&foo), _1);
}

有时“未解决的重载函数类型”可能意味着“没有一个重载是可行的”,在这种情况下,您需要弄清楚为什么它不能使用任何重载并修复它。

于 2012-07-03T06:52:35.743 回答