C ++ 11std::bind
標準から遊んでいたとき、コンパイラによって次のことが許可されることを認識しました。
class Foo
{
public:
void F();
int G(int, int);
};
void Foo::F()
{
auto f = bind(&Foo::G, this, _1, _2);
cout << f(1,2) << endl;
}
int Foo::G(int a, int b)
{
cout << a << ',' << b << endl;
return 666;
}
Foo::G
ただし、 -行の前の「&」を削除すると、bind
コンパイラエラーが発生します(MinGW 4.7を使用)。
どちらも「通常の」関数でFoo::G
機能するのに、なぜメンバー関数へのポインターとして有効ではないのですH
か?&H
LG ntor