我有以下代码在其中创建指向成员函数的指针的映射。
class A {
public:
A() {
m[0] = &A::F1;
m[1] = &A::F2;
}
void F1(int v) { ... }
void F2(int v) { ... }
void O(int i, int v) {
(*m[i])(v);
}
private:
using func = void(A::*)(int);
std::map<int, func> m;
};
Run Code Online (Sandbox Code Playgroud)
但是“ O”中存在编译错误。以我的理解,“ m [i]”是指向成员函数的指针,(* m [i])取消引用它,并应调用相应的成员函数。但这行不通。
c++ ×1