以下代码:
struct X
{
void f() {}
void g()
{
auto h = &f;
}
};
结果是:
error: ISO C++ forbids taking the address of an unqualified
or parenthesized non-static member function to form a pointer
to member function. Say ‘&X::f’
我的问题是,为什么标准不允许和禁止这样做?作为用户引用它不合格会更方便,所以我认为这个要求还有一些其他的理由(安全性?歧义?易于编译器实现?)?