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’
我的问题是,为什么这个标准不允许和禁止这个?作为用户,将它称为不合格会更方便,所以我假设有一些其他的基本原理(安全性?模糊性?编译器实现的简易性?)?
实践表明对PTMF的认识很少,而且它们与功能基本不同. f或& f可能是对正常功能的请求.一个不能为非静态成员服务的人.那些真正意味着PTMF的人说是这样添加& X :: part.