当我使用std::bind
C ++11标准时,我认识到编译器允许以下内容:
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