次の様なクラス(構造体)が有るとして
struct A {
void echo() {}
void echo(int) {}
};
次のようなコードを書く。
A a;
std::bind(&A::echo, &a);
std::bind(&A::echo, &a, 10);
すると
No matching function for call to 'bind'
と怒られる。
対応方法
次のように書けば大丈夫
std::bind<void (A::*)()>(&A::echo, &a);
std::bind<void (A::*)(int)>(&A::echo, &a, 10);
または
std::bind(static_cast<void (A::*)()>(&A::echo), &a);
std::bind(static_cast<void (A::*)(int)>(&A::echo), &a, 10);