なぜこのようなコードが必要になるのでしょうか。
boost::bind (SomeFunc<float>, function arguments go here);
このエラーを生成します:
no matching function for call to bind(<unresolved overloaded function type>
ありがとう
関数SomeFunc<float>
がオーバーロードされている可能性があり、その場合boost::bind
はこれに対処できません。手動のソリューションを実装する必要があります。詳細については、こちらを参照してください。
static_cast
を使用して、あいまいな場合に選択するオーバーロードをコンパイラに指示する必要があります。例:
#include <boost/bind.hpp>
void foo(int) {}
void foo(double) {}
int main() {
boost::bind(static_cast<void(*)(int)>(&foo), _1);
}
「未解決のオーバーロードされた関数型」は、「どのオーバーロードも実行可能ではない」ことを意味する場合があります。その場合、何も使用できない理由を理解して修正する必要があります。